TS: annotation de type dactylographié

TS: annotation de type dactylographié

  • Dans ts, l'annotation de type est un moyen d'ajouter des contraintes à des fonctions ou des variables.

1. Type de base

  • booléen, nombre, chaîne

2. Tableau

  • ts peut manipuler des éléments de tableau comme js, et il existe deux façons de définir des nombres.

    let list : number[] = [1,2,3];
    //or
    let list : Array<number> = [1,2,3];
    

3. Tuples

  • Le type de tuple indique que les types du tableau peuvent être différents, mais l'affectation doit être affectée dans l'ordre des types.

    let list : [string , number];
    x = ['hello', 24];	// true
    x = [20 , 'hello'];	// false
    

    Lors de l'accès aux éléments d'un tuple, faites également attention à l'ordre des types:

    console.log(x[0].substr(1));	//true
    console.log(x[1].substr(1));	//false,number类型没有这个方法
    

    Lors de l'accès à un élément transfrontalier, le type d'union est utilisé à la place, mais vous ne pouvez pas essayer d'attribuer des valeurs autres que le type existant:

    x[3] = 'world';	// ok,string is allowed
    x[3] = true;	// false,boolean不在这个元组内
    

4. Énumération

  • Le type enum est un complément à js. L'énumération peut être utilisée pour donner un nom à un groupe de valeurs. En règle générale, une énumération commence à 0 et attribue des valeurs. Vous pouvez attribuer manuellement des valeurs à partir d'autres nombres, ou vous pouvez affecter toutes les valeurs manuellement.

    enum Color {
          
          red,green,blue}; 	// 从0开始
    let r : Color = Color.red;
    
    enum Color {
          
          red = 1,green,blue}// 从1开始
    enum Color {
          
          red = 1,green = 4,blue = 2};
    

    Il existe également un parcours de l'énumération, et le nom correspondant peut être trouvé par la valeur de l'énumération.

    enum Color {
          
          red,green,blue};
    let colorname : string = Color[0];
    console.log(colorname);	// 'red'
    

5. Quelconque

  • Any peut être utilisé pour marquer certaines variables qui n'ont pas encore été déterminées.

    let notsure : any[] = [1,'hello',true];
    

    La différence avec Object: les variables de type Object vous permettent uniquement de leur attribuer des valeurs, mais vous ne pouvez pas appeler des méthodes du type correspondant.

    let notsure : any = 1;
    notsure.toFixed();	//ok
    
    let notsure : Object = 1;
    notsure.toFixed();	//error,property 'toFixed' does not exist.
    

6. nul

  • Void est l'opposé de any, ce qui signifie qu'il n'y a pas de type. Il est souvent utilisé dans les fonctions qui renvoient void.

    function warning() : void {
          
          
        console.log('warning!');
    }
    

7. null 和 indéfini

  • Par défaut, nullsomme undefinedest un sous-type de tous les types. Que vous pouvez nullet undefinedassigné à numberune variable de type.

8. jamais

  • Quelles valeurs n'existeront jamais, par exemple, représentent une nevervariable pourrait être; type est une fonction du type qui lève toujours une exception ou aucun nevertype de valeur de retour , quand elles ne sont jamais comme truelorsque le type de protection s'applique.

    neverUn type est un sous-type de n'importe quel type et peut être attribué à n'importe quel type; cependant, aucun type n'est neverun sous-type ou ne peut être attribué à un nevertype (sauf pour neverlui-même). Même si anyaucun des deux ne peut être attribué never.

    // 返回never的函数必须存在无法达到的终点
    function error(message: string): never {
          
          
        throw new Error(message);
    }
    
    // 推断的返回值类型为never
    function fail() {
          
          
        return error("Something failed");
    }
    
    // 返回never的函数必须存在无法达到的终点
    function infiniteLoop(): never {
          
          
        while (true) {
          
          
        }
    }
    

9. Type d'objet

  • Le type d'objet représente un type non primitif, qui est un type autre que les types ci-dessus. L'utilisation de ce type peut mieux représenter une API telle que Object.create.

    declare function create(o: object | null): void;
    
    create({
          
           prop: 0 }); // OK
    create(null); // OK
    
    create(42); // Error
    create("string"); // Error
    create(false); // Error
    create(undefined); // Error
    

10. Assertion de type

  • L'assertion de type est similaire à la conversion de type, mais sans vérification ni déconstruction de données spéciales.

    let someValue: any = "this is a string";
    let strLength: number = (<string>someValue).length;
    
    // or 
    let someValue: any = "this is a string";
    let strLength: number = (someValue as string).length;
    
    

Je suppose que tu aimes

Origine blog.csdn.net/yivisir/article/details/109532645
conseillé
Classement