Публикации по теме '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 просмотров
schedule
21.02.2022
Полиморфный (чистый абстрактный) ключ карты жертвует безопасностью типов?
Некоторый контекст: (Не стесняйтесь пропустить вперед) У меня есть модуль, который обрабатывает сложные данные, но должен знать только некоторую его семантику. Данные можно рассматривать как пакет: модуль должен рассуждать только о непрозрачной...
693 просмотров
schedule
20.03.2022
Как сделать тип привязки данных безопасным и поддерживать рефакторинг?
Когда я хочу привязать элемент управления к свойству моего объекта, я должен указать имя свойства в виде строки. Это не очень хорошо, потому что:
Если свойство было удалено или переименовано, я не получаю предупреждения компилятора.
Если...
22571 просмотров
schedule
12.04.2022
Каков самый надежный способ обеспечить безопасность типов компилятора закрытия вместе с AMD (requirejs)?
Хотя JavaScript и его многочисленные библиотеки (jQuery, RequireJS ) позволяют создавать множество замечательных веб-сайтов, мне не хватает безопасности типов. пугает, когда вы думаете о создании более крупного веб-сайта.
У Google есть...
3230 просмотров
schedule
26.04.2022
Является ли неоднозначное неявное значение единственным способом, которым мы хотим, чтобы ошибка существовала во время компиляции
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 просмотров
schedule
22.06.2022
Использование компилятора 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 просмотров
schedule
31.07.2022
Литералы класса Kotlin с пустой левой стороной еще не поддерживаются?
Я пытаюсь проверить, соответствует ли тип другому типу с таким выражением if:
if (String::class is Any::class)
Это дает мне литералы классов ошибок с пустой левой стороной, которые еще не поддерживаются. Может ли кто-нибудь уточнить эту...
676 просмотров
schedule
10.09.2022
Typescript: объявить, что ВСЕ свойства объекта должны быть одного типа
В Typescript вы можете объявить, что все элементы в массиве имеют один и тот же тип, например:
const theArray: MyInterface[]
Есть ли что-то подобное, что вы можете сделать, чтобы объявить, что ВСЕ значения свойств объекта должны быть одного...
12301 просмотров
schedule
02.10.2022
Оценка вложенного запроса Lucene относительно отрицания
Я добавляю поддержку Apache Lucene в Querydsl (предлагает типобезопасные запросы для Java), и у меня возникли проблемы понимание того, как Lucene оценивает запросы, особенно в отношении отрицания во вложенных запросах.
Например, следующие два...
1438 просмотров
schedule
15.06.2023
Неправильно ли используется static_cast?
У меня смешанные чувства по поводу static_cast , так как это самый безопасный из доступных преобразований C ++, но он позволяет одновременно и безопасные, и небезопасные преобразования, поэтому вы должны знать контекст, чтобы сказать, действительно...
787 просмотров
schedule
08.06.2023