Búsqueda de sitios web

palabra clave - ¿Qué es la palabra reservada "type" en TypeScript?


Acabo de notar que al intentar crear una interfaz en TypeScript, "type" es una palabra clave o una palabra reservada. Al crear la siguiente interfaz, por ejemplo, "type" se muestra en azul en Visual Studio 2013 con TypeScript 1.4:

interface IExampleInterface {
    type: string;
}

Digamos que luego intentas 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 escribes (lo siento) la palabra "type" para implementar la propiedad requerida por la interfaz, IntelliSense aparece con "type" teniendo el mismo ícono que otras palabras clave como "typeof" o "new".

He echado un vistazo y pude encontrar este problema en GitHub que enumera "type" como una "palabra reservada en modo estricto" en TypeScript, pero no he encontrado información adicional sobre cuál es su propósito realmente.

Sospecho que estoy teniendo un momento de confusión mental y que esto es algo obvio que ya debería saber, pero ¿para qué sirve la palabra reservada "type" en TypeScript?

Respuesta #1

Se utiliza para "alias de tipo". Por ejemplo:

type StringOrNumber = string | number;
type DictionaryOfStringAndPerson = Dictionary<string, Person>;

Para referencia, hay una sección sobre alias de tipos en el Manual de TypeScript.

Respuesta #2

Escribe palabra clave en typescript:

En TypeScript, 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 mediante un ejemplo:

type Age = number | string;    // pipe means number OR string
type color = "blue" | "red" | "yellow" | "purple";
type random = 1 | 2 | 'random' | boolean;

// random and color refer to user defined types, so type madness can contain anything which
// within these types + the number value 3 and string value 'foo'
type madness = random | 3 | 'foo' | color;  

type error = Error | null;
type callBack = (err: error, res: color) => random;

Puedes componer tipos de tipos escalares (string, number, etc.), pero también de valores literales como 1 o 'mystring'. Incluso puedes componer tipos de otros tipos definidos por el usuario. Por ejemplo, el tipo madness tiene los tipos random y color dentro de él.

Luego, cuando intentamos hacer un literal de cadena nuestro (y tenemos IntelliSense en nuestro IDE) muestra sugerencias:

Muestra todos los colores, que el tipo madness deriva de tener el tipo color, 'random' que se deriva del tipo random, y finalmente, la cadena 'foo' que está en el propio tipo madness.

Artículos relacionados