Публикации по теме 'type-safety'


Условные типы в Typescript
Условные типы — это типы, которые выводятся на основе условия, это производные типы, которые зависят от истинности условия. К концу этой статьи вы должны: Понимать синтаксис и использование условных типов в TypeScript Узнайте, как писать более общий и повторно используемый код с использованием условных типов. Применяйте условные типы к реальным сценариям в собственном коде TypeScript. Получите более глубокое представление о системе типов TypeScript и о том, как она может помочь вам..

Машинопись: вывод типов и аннотации типов
Проще говоря, Typescript - это JavaScript с системой типов, которая в конечном итоге трансформируется в JavaScript. Конечно, между ними больше различий, но в контексте текущего обсуждения давайте сконцентрируемся только на системе типов. Система типов дает множество преимуществ, главное из которых - возможность анализировать код на наличие ошибок во время написания. Во-первых, давайте посмотрим на это в действии: Машинописный линтер сообщает разработчику о возможной проблеме при..

Выживание в экосистеме TypeScript - Часть 2: строгие флаги компилятора
Выживание в экосистеме TypeScript - Часть 2: строгие флаги компилятора Источник на Github: Демонстрация TypeScript Небольшое примечание, прежде чем мы перейдем к этому: все примеры в этом посте используют TypeScript v2.9.1. Если вы видите другое поведение, проверьте свою версию. Время от времени я буду стараться обновлять примеры с помощью обновлений TypeScript. Вступление Одна из самых запутанных вещей в TypeScript - это то, как он может вести себя по-разному в зависимости..

Вопросы по теме 'type-safety'

Почему List совместим со списком ‹?›, Но List ‹List› не поддерживает List ‹List‹? ››?
Я реализовывал некоторые интерфейсы с нестандартным кодом и хотел избавиться от предупреждений без @SupressWarnings . Но потом я оказался в такой ситуации: public abstract class A { public abstract List m1(); public abstract...
78 просмотров
schedule 21.09.2021

Поддерживает ли mingw безопасность clr?
Я хочу скомпилировать расширения C ++ для SQL Server из документы Безопасный режим: запускать проверяемый типобезопасный код; скомпилировано с /clr:safe. Поддерживает ли компиляция C ++ mingw /clr:safe ?
473 просмотров
schedule 26.09.2021

Проверка формата GCC и Clang printf не работает с decltype в функции шаблона
Этот код компилируется даже с -Wall -Werror , но не должен: #include <cstdio> template <typename T> void f() { decltype(printf("%u", 1.0))* p = nullptr; // format does not match args (void)p; } void g() {...
120 просмотров

Полиморфный (чистый абстрактный) ключ карты жертвует безопасностью типов?
Некоторый контекст: (Не стесняйтесь пропустить вперед) У меня есть модуль, который обрабатывает сложные данные, но должен знать только некоторую его семантику. Данные можно рассматривать как пакет: модуль должен рассуждать только о непрозрачной...
693 просмотров
schedule 20.03.2022

Как сделать тип привязки данных безопасным и поддерживать рефакторинг?
Когда я хочу привязать элемент управления к свойству моего объекта, я должен указать имя свойства в виде строки. Это не очень хорошо, потому что: Если свойство было удалено или переименовано, я не получаю предупреждения компилятора. Если...
22571 просмотров

Каков самый надежный способ обеспечить безопасность типов компилятора закрытия вместе с AMD (requirejs)?
Хотя JavaScript и его многочисленные библиотеки (jQuery, RequireJS ) позволяют создавать множество замечательных веб-сайтов, мне не хватает безопасности типов. пугает, когда вы думаете о создании более крупного веб-сайта. У Google есть...
3230 просмотров

Является ли неоднозначное неявное значение единственным способом, которым мы хотим, чтобы ошибка существовала во время компиляции
trait Foo trait Bar extends Foo def doStuff[T <: Foo](x: T)(implicit ev: T =!:= Foo) = x doStuff(new Foo{}) //ambiguous implicit value doStuff(new Bar)// successful Неявное разрешение происходит во время компиляции, поэтому я думаю, что...
1824 просмотров
schedule 01.05.2022

Как убедиться (во время компиляции), что коллекция не была переупорядочена?
Допустим, у меня есть проиндексированная коллекция (здесь не имеет значения List или Map ): val zipped = List(1 -> "A", 3 -> "C", 8 -> "D") С такими сложно работать (поскольку каждая операция, например map , должна иметь дело с...
87 просмотров
schedule 27.05.2022

Обеспечение безопасности типов в C++ без использования дополнительных классов
Я немного знаком с безопасностью типов и успешно использовал ее раньше в методах, которые получают несколько параметров одного и того же типа (bool), чтобы избежать путаницы. Например: // Old version of the method void sendPackage(bool...
501 просмотров
schedule 31.05.2022

Нужен ли типобезопасный язык для статической типизации?
Я пытаюсь понять, что означает типобезопасность языка. В языке с динамической типизацией проверка типа выполняется во время выполнения, например, если я запускаю следующий PHP-код: <?php class MyClass { } // Create a MyClass instance $mc =...
1791 просмотров

Использование компилятора Rust, чтобы не забыть вызвать метод
У меня есть такой код: foo.move_right_by(10); //do some stuff foo.move_left_by(10); Очень важно выполнять обе эти операции в конце концов , но я часто забываю сделать вторую после первой. Это вызывает много ошибок, и мне интересно, есть ли...
1985 просмотров
schedule 25.06.2022

HashMap псевдопеременных любого типа приятный дизайн
Я пишу простую систему переменных в Scala. Мне нужен способ красиво хранить эти AnyVar и обращаться к ним по именам строк. У меня есть этот объект, называемый контекстом, чтобы управлять им, но на самом деле это просто оболочка для...
87 просмотров
schedule 03.07.2022

Шаблон для безопасных флагов класса enum С++ 11
Я пытаюсь создать безопасные флаги С++ с использованием шаблонов. Я также хочу различать флаг a и флаг s (будучи нулем, одним или несколькими флагами). Приведенное ниже решение работает хорошо, за исключением EnumFlag<T> operator | (T,...
6513 просмотров
schedule 13.07.2022

код может работать в eclipse, но не в javac
для кода import java.util.*; interface Sample{ } public class TypeTest implements Sample{ public static void main(String[] args) { Set<Object> objs = new HashSet<>(); objs.add(new TypeTest()); List<?...
134 просмотров
schedule 10.07.2022

Безопасность типов в дженериках
У меня есть приведенная ниже иерархия классов, которые просто реализуют воображаемую функциональность кодирования и декодирования животных из заданных байтовых массивов. public abstract class Animal { } class Tiger extends Animal{ private...
93 просмотров
schedule 21.07.2022

Непроверенное приведение к универсальному классу, реализующему Map‹String, V›
Я пытаюсь понять, почему этот код имеет предупреждение о непроверенном приведении. Первые два приведения не имеют предупреждения, но третье имеет: class StringMap<V> extends HashMap<String, V> { } class StringToIntegerMap extends...
2287 просмотров

Литералы класса Kotlin с пустой левой стороной еще не поддерживаются?
Я пытаюсь проверить, соответствует ли тип другому типу с таким выражением if: if (String::class is Any::class) Это дает мне литералы классов ошибок с пустой левой стороной, которые еще не поддерживаются. Может ли кто-нибудь уточнить эту...
676 просмотров
schedule 10.09.2022

Typescript: объявить, что ВСЕ свойства объекта должны быть одного типа
В Typescript вы можете объявить, что все элементы в массиве имеют один и тот же тип, например: const theArray: MyInterface[] Есть ли что-то подобное, что вы можете сделать, чтобы объявить, что ВСЕ значения свойств объекта должны быть одного...
12301 просмотров

Оценка вложенного запроса Lucene относительно отрицания
Я добавляю поддержку Apache Lucene в Querydsl (предлагает типобезопасные запросы для Java), и у меня возникли проблемы понимание того, как Lucene оценивает запросы, особенно в отношении отрицания во вложенных запросах. Например, следующие два...
1438 просмотров
schedule 15.06.2023

Неправильно ли используется static_cast?
У меня смешанные чувства по поводу static_cast , так как это самый безопасный из доступных преобразований C ++, но он позволяет одновременно и безопасные, и небезопасные преобразования, поэтому вы должны знать контекст, чтобы сказать, действительно...
787 просмотров
schedule 08.06.2023