Tipos de dados TypeScript e pontos de entrevista relacionados

I. Introdução

Antes de mais nada, precisamos saber o que é TypeScript. TypeScript é um superconjunto de tipos de JavaScript, suporta a sintaxe ES6 e suporta a probabilidade de programação orientada a objetos, como classes, interfaces, herança e genéricos.

2. Principais tipos de dados

booleano (tipo booleano)

// boolean 布尔类型
let bool:boolean = true

console.log(bool);//true

número (tipo numérico)

// number 数字类型,和javascript一样
// typescript的数值类型都是浮点数,可支持二进制、八进制、十进制和十六进制
let num: number = 10;
console.log(num);//10

string (tipo de string)

//字符串类型和JavaScript一样,可以使用双引号(")或单引号(')表示字符串
// 作为超集,当然也可以使用模版字符串``进行包裹,通过 ${} 嵌入变量
let str: string = `hello TypeScript${num}`

console.log(str);//hello TypeScript10

tipos nulos e indefinidos

// null 和 undefined 类型
let myNull:null = null
let myUndefined:undefined = undefined
console.log(myNull,myUndefined);//null undefined

tipo de matriz

//array(数组类型)
// 方式一:元素类型后面接上 []
let arr :number[] = [1,2,3];
console.log(arr);//[ 1, 2, 3 ]

// 方式二:使用数组泛型,Array<元素类型>
let arr2:Array<string> = ['lcy','180','18'];
console.log(arr2);//[ 'lcy', '180', '18' ]
// 方式三:联合类型
let arr3:(string|number|boolean)[] =  ['zs', 19, true];
console.log(arr3);//[ 'zs', 19, true ]

// 声明类型关键字 type
type arrType = (string|number)[];
let arr4 :arrType = [1,2,3,'a','b','c'];

tupla (tipo de tupla)

//  元组 
let position: [number, number, string] = [39.5427, 116.2317, 'China']

let position2: [number, number, string?] = [39.5427, 116.2317]
console.log(position);//[ 39.5427, 116.2317, 'China' ]

console.log(position2);//[ 39.5427, 116.2317 ]

enum (tipo de enumeração)

// enum(枚举类型)
//第一种数字枚举 
// 当我们声明一个枚举类型时,虽然没有给他赋值
// 但是它们的值其实是默认数字类型,而且默认从0开始依次累加;
enum myNumber{
    up,
    down,
    left,
    right
}
console.log(myNumber.up,myNumber.down,myNumber.left,myNumber.right);//0,1,2,3
// 如果我们将第一个值进行赋值后,后面的值也会根据前一个值进行累加1
enum myNumber1{
    up=5,
    down,
    left,
    right
}
console.log(myNumber1.up,myNumber1.down,myNumber1.left,myNumber1.right);//5,6,7,8
// 第二种字符串枚举。提示:如果设定了一个变量为字符串之后,后续的字段也需要赋值字符串,否则报错
enum myStr {
    Up = 'Up',
    Down = 'Down',
    Left = 'Left',
    Right = 'Right'
}
console.log(myStr.Up,myStr['Down']);//Up Down
// 异构枚举 即将数字枚举和字符串枚举结合起来混合起来使用
enum StringNumber{
    NO=0,
    yes='a'
}
console.log(StringNumber.NO,StringNumber.yes);//0 a

qualquer (qualquer tipo)

// any(任意类型)
let any:any = 1;
any = 'a'
any= true
// 定义存储各种类型数据的数组时
let arrAny:any[] =[1,false,'1'] 

objeto (tipo de objeto)

let obj:{
    name:string
    sex:number
    sayHello:()=>void
} = {
    name:'lcy',
    sex:18,
    sayHello(){
        console.log('大家好我是TypeScript');
    }
}
console.log(obj);//{ name: 'lcy', sex: 18, sayHello: [Function: sayHello] }
obj.sayHello()//大家好我是TypeScript

vazio

// void 用于标识方法返回值的类型,表示该方法没有返回值。
function greet(msg: string): void {
    console.log('hello 打招呼 没有返回值');
}

3. Interface e herança de interface

// 定义一个接口
interface Point2D{
    x:number
    y:number
}
interface InfoName{
    name:string
    age:number
}
// 用extends实现继承
interface Point3D extends Point2D{
    z:number
}

interface Point3D extends InfoName{

}
let pointA : Point2D = {
    x:10,
    y:20
}
let pointB : Point3D = {
    x:10,
    y:20,
    z:30,
    name:'C',
    age:18
}
console.log(pointB);//{ x: 10, y: 20, z: 30, name: 'C', age: 18 }

4. Perguntas da entrevista

①A diferença entre JavaScript e TypeScript:

  • TypeScript é um superconjunto de JavaScript que estende a sintaxe do JavaScript
  • O TypeScript pode processar o código JavaScript existente e apenas compilar o código TypeScript nele
  • O sufixo dos arquivos TypeScript é .ts (.ts, .tsx, .dts) e a extensão dos arquivos JavaScript é .js
  • Ao escrever um arquivo TypeScript, ele será compilado automaticamente em um arquivo js

②Tipos de dados TypeScript:

  • booleano (tipo booleano)
  • número (tipo numérico)
  • string (tipo de string)
  • matriz (tipo de matriz)
  • tupla (tipo de tupla)
  • enum (tipo de enumeração)
  • qualquer (qualquer tipo)
  • tipos nulos e indefinidos
  • tipo vazio
  • nunca digite
  • tipo de objeto objeto

Supongo que te gusta

Origin blog.csdn.net/A20201130/article/details/124869321
Recomendado
Clasificación