typescript type的详细介绍-icode9专业技术文章分享

2024/10/30 6:32:52

本文主要是介绍typescript type的详细介绍-icode9专业技术文章分享,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

TypeScript 是 JavaScript 的超集,它引入了静态类型系统,使代码更加健壮和易于维护。以下是 TypeScript 中关于类型(Type)的详解:

基本类型

1. 布尔值 (boolean)

let isDone: boolean = true;

TypeScript

2. 数字 (number)

let decimal: number = 6;
let hex: number = 0xf00d;
let binary: number = 0b1010;
let octal: number = 0o744;

TypeScript

3. 字符串 (string)

let color: string = "blue";
color = 'red';

TypeScript

4. 数组 (Array)

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

TypeScript

5. 元组 (Tuple)

元组类型允许表示一个已知元素数量和类型的数组,各元素的类型不必相同。

let x: [string, number];
x = ["hello", 10]; // OK

TypeScript

6. 枚举 (enum)

枚举类型是对 JavaScript 标准数据类型的一个补充。

enum Color {Red, Green, Blue}
let c: Color = Color.Green;

TypeScript

7. 任意值 (any)

当你不确定某个值的数据类型时可以使用 any

let notSure: any = 4;
notSure = "maybe a string instead";
notSure = false; // OK

TypeScript

8. 空值 (void)

常用于表示某个函数没有返回值。

function warnUser(): void {
    console.log("This is my warning message");
}
let unusable: void = undefined;

TypeScript

9. 空 (null) 和 未定义 (undefined)

默认情况下,null 和 undefined 是所有类型的子类型。

let u: undefined = undefined;
let n: null = null;

TypeScript

10. 从不 (never)

never 类型表示的是那些永不存在的值的类型。

function error(message: string): never {
    throw new Error(message);
}

TypeScript

复杂类型

1. 对象 (object)

表示非原始类型。

declare function create(o: object | null): void;
create({ prop: 0 }); // OK
create(null); // OK

TypeScript

2. 联合类型 (Union Types)

表示一个值可以是几种类型之一。

let value: string | number;
value = "Hello";
value = 123;

TypeScript

3. 类型别名 (Type Aliases)

你可以使用 type 关键字为一个类型定义一个新名字。

type Name = string;
type NameResolver = () => string;
type NameOrResolver = Name | NameResolver;
function getName(n: NameOrResolver): Name {
    if (typeof n === 'string') {
        return n;
    } else {
        return n();
    }
}

TypeScript

4. 接口 (Interface)

接口可以用来描述对象的形状。

interface LabeledValue {
    label: string;
}

function printLabel(labeledObj: LabeledValue) {
    console.log(labeledObj.label);
}

let myObj = {size: 10, label: "Size 10 Object"};
printLabel(myObj);

TypeScript

5. 函数类型 (Function Types)

为函数定义类型。

interface SearchFunc {
    (source: string, subString: string): boolean;
}

let mySearch: SearchFunc;
mySearch = function(source: string, subString: string) {
    return source.search(subString) !== -1;
}

TypeScript

6. 类 (Class)

TypeScript 支持 ES6 的类。

class Animal {
    private name: string;
    constructor(name: string) {
        this.name = name;
    }
    public move(distanceInMeters: number = 0) {
        console.log(`${this.name} moved ${distanceInMeters}m.`);
    }
}

let dog = new Animal("Dog");
dog.move(10);

TypeScript

7. 泛型 (Generics)

你可以创建支持多种数据类型的组件。

function identity<T>(arg: T): T {
    return arg;
}
let output = identity<string>("myString");

TypeScript

8. 类型推断 (Type Inference)

TypeScript 可以根据一些简单的规则来推断出变量的类型。

let x = 3; // x 被推断为 number 类型

TypeScript

总结

TypeScript 提供了丰富的类型系统,使得 JavaScript 的开发更加稳健和高效。通过使用类型,你可以更早地发现代码中的错误,并使得代码更加易于理解和维护。

标签: 来源:

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。



这篇关于typescript type的详细介绍-icode9专业技术文章分享的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程