Другой вариант: :
Как бы вы напечатали свойство DOM windowState
в TypeScript?
РЕШЕНО (в TypeScript 2):
declare var windowState: WindowState
const enum WindowState {
STATE_MAXIMIZED = 1,
STATE_MINIMIZED = 2,
STATE_NORMAL = 3,
STATE_FULLSCREEN = 4
}
...
var windowState = 5 // Type Error, as expected!
Оригинальный вопрос :
Как мне declare
создать type
в TypeScript, чтобы он описывал алгебраический тип данных? Целью этого является описание существующего API.
Когда я пытаюсь сделать следующее, TypeScript явно жалуется на то, что type is expected
:
type Weather = 'sunny' | 'bad'
Одна из моих идей заключалась в использовании JavaScript 2015 Symbol
, однако TypeScript не ' Кажется, я не знаю об этом.
Другая идея заключалась в использовании enum
, однако TypeScript жалуется, что member initializer must be constant expression
:
const enum Weather {
sunny = 'sunny',
bad = 'bad',
windy = Symbol('windy')
}
я бы подумал, что константа string
является константой выражение.