Литеральный тип
Литералы являются точной переменной, предоставляемой самим JavaScript.
Строковый литерал
Вы можете использовать строковый литерал в качестве типа:
Здесь мы создали переменную с именем foo
, которая принимает только одну переменную, буквальное значение которой равно Hello
:
Они сами по себе не очень практичны, но могут быть объединены для создания мощной (практической) абстракции в объединенном типе:
Другие литеральные типы
TypeScript также предоставляет boolean
и number
литеральные типы:
Вывод
Довольно часто вы получаете сообщение об ошибке типа Type string is not assignable to type 'foo'
. Следующий пример демонстрирует это:
Это потому, что test
выводится как { someProp: string }
, мы можем использовать утверждение простого типа, чтобы сообщить TypeScript литералы, которые вы хотите вывести:
Или используйте аннотации типов, чтобы помочь TypeScript вывести правильный тип:
Случаи использования
Типы перечислений TypeScript основаны на числах. Вы можете использовать типы объединения со строковыми литералами для имитации типа перечисления на основе строк, так же как и CardinalDirection
, предложенный выше. Вы даже можете использовать следующие функции для генерации структуры key: value
:
Затем вы можете использовать keyof
, typeof
для генерации типа объединения строки. Вот полный пример:
Различать union
Мы объясним это позже в этой книге.
Last updated
Was this helpful?