Al intentar crear una interfaz en TypeScript, noté que "tipo" es una palabra clave o una palabra reservada. Al crear la siguiente interfaz, por ejemplo, "tipo" se muestra en azul en Visual Studio 2013 con TypeScript 1.4:
interface IExampleInterface {
type: string;
}
Digamos que luego intenta implementar la interfaz en una clase, así:
class ExampleClass implements IExampleInterface {
public type: string;
constructor() {
this.type = "Example";
}
}
En la primera línea de la clase, mientras escribe (lo siento) la palabra "tipo" para implementar la propiedad requerida por la interfaz, IntelliSense aparece con "tipo" que tiene el mismo icono que otras palabras clave como "typeof" o "new ".
Eché un vistazo y pude encontrar este problema de GitHub que enumera "tipo" como una "palabra reservada en modo estricto" en TypeScript, pero no he encontrado más información sobre cuál es realmente su propósito.
Sospecho que estoy teniendo un pedo cerebral y esto es algo obvio que ya debería saber, pero ¿para qué es la palabra reservada "tipo" en TypeScript?
fuente
Type Alias
para dar a sus tipos un nombre semántico: basarat.gitbooks.io/typescript/content/docs/types/…Respuestas:
Se utiliza para "alias de tipo". Por ejemplo:
Referencia: Especificación de TypeScript v1.5 (sección 3.9, "Alias de tipo", páginas 46 y 47)
Actualización : ahora en la sección 3.10 de la especificación 1.8 . Gracias @RandallFlagg por la especificación y el enlace actualizados
Actualización : Manual de TypeScript , la búsqueda "Alias de tipo" puede llevarlo a la sección correspondiente.
fuente
Escriba la palabra clave en mecanografiado:
En mecanografiado, la palabra clave type define un alias para un tipo. También podemos usar la palabra clave type para definir tipos definidos por el usuario. Esto se explica mejor con un ejemplo:
Puede componer tipos de tipos escalares (
string
,number
, etc.), sino también de los valores literales como1
o'mystring'
. Incluso puede componer tipos de otros tipos definidos por el usuario. Por ejemplo escribamadness
tiene los tiposrandom
ycolor
en él.Luego, cuando intentamos hacer una cadena literal nuestra (y tenemos IntelliSense en nuestro IDE), muestra sugerencias:
Muestra todos los colores, cuyo tipo de locura se deriva de tener el tipo de color, 'aleatorio' que se deriva del tipo aleatorio y, finalmente, la cadena
'foo'
que está en el tipo de locura en sí.fuente
type color = "blue" | "red" | "yellow" | "purple";
declaraciones dentro o fuera de la clase?