Qu'est-ce que
typescript
C'est javascript
presque la même chose, a le même type de données et javascript
fournit des types plus pratiques pour une utilisation en développement sur la base.
Dans la phase de développement, il est possible de définir un certain type pour une variable spécifique, afin que typescript
la vérification de type puisse être effectuée lors de la phase de compilation, et un message d'erreur apparaîtra lorsque le type ne répond pas au résultat attendu.
Quoi
typescript
Les principaux types de données sont les suivants :
- 1. booléen (type booléen)
- 2. nombre (type de nombre)
- 3, chaîne (type chaîne)
- 4. tableau (type tableau)
- 5. tuple (type de tuple)
- 6, enum (type d'énumération)
- 7. tout (tout type)
- 8. Types nuls et indéfinis
- 9. type vide
- 10, ne tapez jamais
- 11. objet (type d'objet)
booléen
let flag:boolean = true;
flag = 123; // 错误
flag = false; // 正确
复制代码
numéro
Les types numériques de , et javascript一样
, typescript
sont des nombres à virgule flottante prenant en charge binaire, octal, décimal et hexadécimal.
let num:number = 123;
num = '456'; // 错误
num = 456; // 正确
复制代码
Représentation de base :
let decLiteral:number = 6; // 十进制
let hexLiteral:number = 0xfood; // 十六进制
let binaryLiteral:number = 0b1010; // 二进制
let octalLiteral:number = 0o744; // 八进制
复制代码
chaîne de caractères
Les types de chaîne, javascript
comme dans, peuvent utiliser des guillemets doubles ( "
) ou des guillemets simples ( '
) pour représenter des chaînes
let str:string = 'this is ts';
str = 'test';
复制代码
En tant que sur-ensemble, bien sûr, il peut également être enveloppé dans des chaînes de modèle et des variables intégrées via ${}
let name:string = `Gene`;
let sentence:string = `Hello, my name is ${name}`
复制代码
déployer
Le type de tableau, javascript
cohérent avec cela, peut []
être écrit de deux manières en l'enveloppant :
Méthode 1 : Le type d'élément est suivi de[]
let arr:string[] = ['12','23'];
arr = ['45','56'];
复制代码
Méthode 2 : Utiliser les génériques de tableau, Array<元素类型>
:
let arr:Array<number> = [1,2];
arr = ['45','55'];
复制代码
tuple
Un type tuple, permettant de représenter un tableau d'éléments et de types connus, chaque élément n'a pas besoin d'être du même type
let tupleArr:[number,string,boolean];
tupleArr = [12,'34',true]; // yes
tupleArr = [12,'34']; // no
复制代码
énumération
enum
Les types sont javascript
un complément aux types de données standard, et les types d'énumération peuvent être utilisés pour donner à un ensemble de valeurs un nom convivial
enum Color {Red,Green,Blue}
let c:Color = Color.Green;
复制代码
quelconque
Des valeurs de n'importe quel type peuvent être spécifiées. Les variables dont les types ne sont pas connus au stade de la programmation spécifient un type. Vous ne voulez pas que le vérificateur de type vérifie ces valeurs, mais laissez-les directement passer la vérification de l'étape de compilation. À ce stade, vous pouvez utiliser le any
type
使用any
类型允许被赋值为任意类型,甚至可以调用其属性、方法
let num:any = 123;
num = 'str';
num = true;
复制代码
定义存储各种类型数据的数组时,示例代码如下:
let arrayList:any[] = [1,false,'fine'];
arrayList[1] = 100;
复制代码
null和undefined
在javascript
中null
表示 “什么都没有”,是一个只有一个值的特殊类型,表示一个空对象引用,而undefined
表示一个没有设置值的变量。
默认情况下null
和undefined
是所有类型的子类型,就是说你可以把null
和undefined
赋值给number
类型的变量
let num:number | undefined; // 数值类型或者undefined
console.log(num); // 正确
num = 123;
console.log(num); // 正确
复制代码
但是ts
配置了--strictNullChecks
标记,null
和undefined
只能赋值给void
和它们各自
void
用于标识方法返回值的类型,表示该方法没有返回值。
function hello():void {
alert('Hello Runoob')
}
复制代码
never
never
是其他类型(包括null
和undefined
)的子类型,可以赋值给任何类型,代表从不会出现的值,
但是没有类型是never的子类型,这意味着生命never
的变量只能被never
类型所赋值。
never
类型一般用来指定哪些总是会抛出异常,无限循环
let a:never;
a = 123; // 错误的写法
a = (() => { // 正确的写法
throw new Errow('错误')
})()
// 返回的never的函数必须存在无法达到的终点
function error(message:string): never {
thorw new Error(message);
}
复制代码
object
对象类型,非原始类型,常见的形式通过{}
进行包裹
let obj:object;
obj = {name:'Zhang',age:23};
复制代码
总结
和javascript
基本一致,也分成:
- 1、基本类型
- 2、引用类型
在基础类型上,typescript
增添了void、any、emun
等原始类型。