TS DataType

article/2025/11/6 18:46:41

TypeScript有13中数据类型

布尔值(Boolean)

  • 最基本的数据类型就是简单的 true/ false值,在 JavaScript和 TypeScript里叫做 boolean(其它语言中也一样)。
let isDone: boolean = false;

数字(Number)

  • 和 JavaScript一样, TypeScript里的所有数字都是 浮点数。这些 浮点数的类型是 number。
  • 除了支持 十进制和 十六进制字面量, TypeScript还支持 ECMAScript2015中引入的 二进制和 八进制字面量。

let decLiteral: number = 6; // 十进制
let hexLiteral: number = 0xf00d; // 十六进制
let binaryLiteral: number = 0b1010; // 二进制
let octalLiteral: number = 0o744; // 八进制

字符串(String)

  • 可以使用双引号( ")或单引号( ')表示字符串
let color: string = 'blue’;let name: string = `Gene`;
let age: number = 37;
let sentence: string = `Hello, my name is ${ name }`;

标记(Symbol)

  • 自 ECMAScript2015起, symbol成为了一种新的原生类型,就像 number和 string一样。
  • symbol类型的值是通过 Symbol构造函数创建的
let sym1 = Symbol();
let sym2 = Symbol('key’); // 可选的字符串key
  • Symbols是不可改变且唯一的。
let sym3 = Symbol('key');
let sym4 = Symbol('key');
sym3 === sym4; // false, symbols是唯一的
  • symbols也可以被用做对象属性的键。
let sym = Symbol();
let obj = {[sym]: 'value',
};
console.log(obj[sym]); // "value"
  • Symbols也可以与计算出的 属性名声明相结合,来声明对象的属性和类成员。
const getClassNameSymbol = Symbol();
class C {[getClassNameSymbol]() {return 'C';}
}
let c = new C();let className = c[getClassNameSymbol](); // "C"

数组(Array)

  • TypeScript像 JavaScript一样可以操作数组元素。
  • 有两种方式可以定义数组。
  • 第一种,可以在元素类型后面接上 [],表示由此类型元素组成的一个数组:
let list: number[] = [1, 2, 3];
  • 第二种方式是使用数组泛型, Array<元素类型>:
let list1: Array<number> = [1, 2, 3];

元组(Tuple)

  • 元组类型允许表示一个 已知元素数量 和 类型的数组,各元素的类型不必相同。
// 比如,你可以定义一对值分别为 string和 number类型的元组。
// Declare a tuple type
let x: [string, number];// Initialize it
x = ['hello', 10]; // OK// Initialize it incorrectly
x = [10, 'hello']; // Error// 当访问一个已知索引的元素,会得到正确的类型:
console.log(x[0].substring(1)); // OK
console.log(x[1].substring(1)); // Error, 'number' does not have 'substring'// 超出
x[3] = 'world'; // Error, Property '3' does not exist on type '[string, number]'.
console.log(x[5].toString()); // Error, Property '5' does not exist on type '[string, number]'.

枚举(Enum)

  • enum类型是对 JavaScript标准数据类型的一个补充。像 C#等其它语言一样,使用枚举类型可以为一组数值赋予友好的名字
enum Color {Red,Green,Blue,
}
// 默认情况下,从 0开始为元素编号。
let c: Color = Color.Green; // 1// 手动的指定成员的数值
enum Color {Red = 1,Green,Blue,
}
let c: Color = Color.Green; // 2// 或者,全部都采用手动赋值:
enum Color {Red = 1,Green = 2,Blue = 4,
}
let c: Color = Color.Green; // 2// 初始其中一个值
enum Color {Red = 1,Green,Blue,
}let colorName: string = Color[2];
console.log(colorName);
// 显示'Green'因为上面代码里它的值是2// 指定枚举值为字符串
const { log } = console;
enum Color {Red = 'rRed',Green = 'rGreen',Blue = 'rBlue',
}
const c: Color = Color.Red; // 1
log(c); // rRed
log(Color.Green); // rGreen
log(Color.Blue); // rBlue// 请注意这边如果将枚举值指定为非 number类型的值,
// 则需要每个枚举值都进行手动赋值,否则就会报错 Enummember must have initializer.。
enum Color {Red = 'rRed',Green,Blue,
} // Enum member must have initializer.// 注意这边如果将枚举值指定为非 number类型的值,则需要每个枚举值都进行手动赋值,
// 同时,除了 number类型,手动赋值的类型需要为同一种类型
// fine-好的
enum Color {Red = 0,Green = 'rGreen',Blue = 'rBlue',
}// Computed values are not permitted in an enum with string valued members.
enum Color {Red = true,Green = 'rGreen',Blue = 'rBlue',
}// 指定枚举值为布尔值
enum Color {Red = 0,Green = true, // Type 'true' is not assignable to type 'Color'Blue = false, // Type 'false' is not assignable to type 'Color'
}// 指定枚举值为 null和 undefined
enum Color {Red = 0,Green = null, // Type 'null' is not assignable to type 'Color'Blue = undefined, // Type 'undefined' is not assignable to type 'Color'
}// 指定枚举值为 array和 object
enum Color {Red = 0,Green = [], // Type 'never[]' is not assignable to type 'Color'Blue = {}, // Type '{}' is not assignable to type 'Color'
}// 指定枚举值为 symbol
const sys = Symbol();
enum Color {Red = 0,Green = sys, // Type 'unique symbol' is not assignable to type 'Color'.Blue, // Type '{}' is not assignable to type 'Color'
}

任意类型(Any)

  • 想要为那些在编程阶段还不清楚类型的变量指定一个类型。这些值可能来自于动态的内容,比如来自用户输入或第三方代码库。
  • 不希望 类型检查器对这些值进行检查而是直接让它们通过 编译阶段的检查。可以使用 any类型来标记这些变量
  • any类型是十分有用的,允许你在编译时可选择地包含或移除类型检查。
let notSure: any = 4;
notSure = 'maybe a string instead';
notSure = false; // okay, definitely a booleanlet notSure: any = 4;
notSure.ifItExists(); //  TSLint will not throw Error, okay, ifItExists might exist at runtime
notSure.toFixed(); // TSLint will not throw Error, okay, toFixed exists (but the compiler doesn't check)// Object类型的变量只是允许你给它赋任意值,但是却不能够在它上面调用任意的方法,即便它真的有这些方法:
let prettySure: Object = 4;
prettySure.toFixed(); // TSLint will throw Error: Property 'toFixed' does not exist on type 'Object'.

null

  • JavaScript 中 null表示 "什么都没有",是一个只有一个值的特殊类型,表示一个空对象引用,
  • 默认情况下nullundefined是所有类型的子类型,可以把 null和 undefined赋值给 number类型的变量

undefined

  • undefined表示一个没有设置值的变量
  • 默认情况下nullundefined是所有类型的子类型,可以把 null和 undefined赋值给 number类型的变量

<aside> 💡 但是ts配置了-strictNullChecks标记,nullundefined只能赋值给void和它们各自

</aside>

无返回值(void)

  • 用于标识方法返回值的类型,表示该方法没有返回值。
function hello(): void {alert("Hello Runoob");
}

非存在类型(Never)

  • never类型表示的是那些永不存在的值的类型。
// 例如 never类型是那些总是会抛出异常或根本就不会有返回值的函数表达式或箭头函数表达式的返回值类型;
// 变量也可能是 never类型,当它们被永不为真的类型保护所约束时。function testNever(test: never): never {return test;
}// 返回never的函数必须存在无法达到的终点
function error(message: string): never {throw new Error(message);
}// 推断的返回值类型为never
function fail() {return error('Something failed');
}// 返回never的函数必须存在无法达到的终点
function infiniteLoop(): never {while (true) {}
}function testDoWhile(): never {do {} while (true);
}// never类型是任何类型的子类型,也可以赋值给任何类型;
// 然而,没有类型是 never的子类型或可以赋值给 never类型(除了 never本身之外)。即使 any也不可以赋值给 never
const x1: string = never;
// 'never' only refers to a type, but is being used as a value here.const x2: number = never;
// 'never' only refers to a type, but is being used as a value here.const x3: boolean = never;
// 'never' only refers to a type, but is being used as a value here.const x4: null = never;
// 'never' only refers to a type, but is being used as a value here.const x5: never = never;
// 'never' only refers to a type, but is being used as a value here.const x6: any = never;
// 'never' only refers to a type, but is being used as a value here.const x7: undefined = never;
// 'never' only refers to a type, but is being used as a value here.

对象(Object)

  • object表示非原始类型,也就是除 number, string, boolean, symbol, null或 undefined之外的类型。
  • 使用 object类型,就可以更好的表示像 Object.create这样的API。
declare function create(o: object | null): void;create({ prop: 0 }); // OKcreate(null); // OKcreate(42); // Errorcreate('string'); // Errorcreate(false); // Errorcreate(undefined); // Error

Notion – The all-in-one workspace for your notes, tasks, wikis, and databases.A new tool that blends your everyday work apps into one. It's the all-in-one workspace for you and your teamhttps://serious-lose.notion.site/TS-DataType-ac8b13eb5fec4d3880081ca0fba432e1


http://chatgpt.dhexx.cn/article/LGQdXvN9.shtml

相关文章

Autosar DataType介绍

前言 看了一下基本的配置&#xff0c;发现Autosar的DataType的内容比较多&#xff0c;也比较复杂&#xff0c;所以单独开一章来记录一下 Autosar DataType介绍 前言一.基本数据类型1.1基本类型1.2其他类型 二&#xff0c;详细数据介绍2.1 新建数据类型的具体类型2.2 详细举例介…

contentType与dataType

$.ajax contentType 和 dataType , contentType 主要设置你发送给服务器的格式&#xff0c;dataType设置你收到服务器数据的格式。 在http 请求中&#xff0c;get 和 post 是最常用的。在 jquery 的 ajax 中&#xff0c; contentType都是默认的值&#xff1a;application/x-ww…

Types of Data

企业中的数据都如何分类&#xff1f; 粗略的分类 如果粗略点的分类话&#xff0c;可以分为两类数据&#xff1a;主数据和事务型数据。 主数据(Master Data) “Master Data is your business critical data that is stored in disparate systems spread across your Enterprise.…

Python DataType(数据类型)

简述 变量&#xff1a;指代任意一个数&#xff0c;或其他数据类型 变量名&#xff1a;大小写英文、数字和下划线&#xff08;_&#xff09;的组合&#xff0c;且不能用数字开头 Python主要的数据类型有如下&#xff1a;&#xff08;允许自定义数据类型&#xff09; 整数&…

条件随机场适用于无监督学习吗?

条件随机场适用于无监督学习吗&#xff1f; 在网上搜到的资料比较少。 HMM模型可以用EM算法来进行无监督学习。

深入理解机器学习——概率图模型(Probabilistic Graphical Model):条件随机场(Conditional Random Field,CRF)

分类目录&#xff1a;《深入理解机器学习》总目录 条件随机场&#xff08;Conditional Random Field&#xff0c;CRF&#xff09;是一种判别式无向图模型&#xff0c;在《概率图模型&#xff08;Probabilistic Graphical Model&#xff09;&#xff1a;隐马尔可夫模型&#xff…

概率图模型之条件随机场

条件随机场&#xff08;CRF&#xff09;是一种判别式无向图模型。生成式模型是直接对联合分布进行建模&#xff0c;而判别式模型是对条件分布进行建模。前面提到的隐马尔可夫模型和马尔可夫随机场都是生成式模型&#xff0c;而条件随机场则是判别式模型。条件随机场试图对多个变…

马尔可夫随机场与条件随机场

文章目录 马尔可夫随机场1. 引言2. 团与极大团3. MRF联合概率4. MRF的条件独立性(有向分离)条件随机场 马尔可夫随机场 1. 引言 马尔可夫随机场(Markov Random Field&#xff0c;简称MRF)&#xff0c;是马尔可夫网的一种&#xff0c;生成式模型&#xff0c;是一种著名的无向图…

通俗易懂条件随机场CRF

条件随机场CRF 条件随机场(Conditional Random Fields, 以下简称CRF)是给定一组输入序列条件下另一组输出序列的条件概率分布模型&#xff0c;在自然语言处理中得到了广泛应用。本系列主要关注于CRF的特殊形式&#xff1a;线性链(Linear chain) CRF。本文关注与CRF的模型基础。…

条件随机场(2)——概率计算

1.CRF简化表示 先回顾一下线性链CRF参数化形式 和都可以表示为随机变量的函数&#xff0c;因此&#xff0c;可以将和统一成 其中&#xff0c;是转移特征的个数&#xff0c;是状态特征的个数。特征函数所代表的特征集合一共有K个值&#xff0c;。 用来表示特征的权重&am…

条件随机场详细推导

条件随机场 条件随机场简介1.条件随机场简介 条件随机场举例2.条件随机场举例 条件随机场三个基本问题及推导3.条件随机场三个基本问题及推导 参考文献 条件随机场简介 1.条件随机场简介 马尔可夫随机场&#xff1a;设有联合概率分布P(Y)&#xff0c;由无向图G(V,E)表示&…

经典算法: 条件随机场(conditional random field, CRF)

1. 引言 条件随机场&#xff0c;conditional random field&#xff0c;CRF&#xff0c;是给定一组输入随机变量的条件下&#xff0c;输出随机变量的条件概率分布模型。 条件随机场和隐马尔可夫模型的联系&#xff1a; 可以看到&#xff0c;条件随机场是一种无向图。 2. 概…

条件随机场原理介绍

1. 引言 条件随机场&#xff08;Conditional random field&#xff0c;CRF&#xff09;是给定一组输入随机变量条件下另一组输出随机变量的条件概率分布模型&#xff0c;其特点是假设输出随机变量构成马尔可夫随机场。条件随机场常用于序列标注问题&#xff0c;比如命名实体识别…

条件随机场(CRF)概述

转自&#xff1a;原文链接 条件随机场是一种判别模型&#xff0c;用于预测序列。他们使用来自先前标签的上下文信息&#xff0c;从而增加了模型做出良好预测所需的信息量。在这篇文章中&#xff0c;我将讨论一些将介绍 CRF 的主题。我会过去&#xff1a; 什么是判别分类器&am…

条件随机场CRF的理解

1.个人理解和总结 对比HMM的状态转移概率矩阵和发射概率矩阵CRF有自己的定义在边上的特征函数&#xff08;相当于转移概率&#xff09;和定义在节点上的特征函数&#xff08;相当月发射概率&#xff09;序列标注HMM可以根据转移概率矩阵和发射概率矩阵计算出隐状态序列概率&am…

条件随机场的简单理解

目录 什么是条件随机场 条件随机场长怎么样 如何构建特征函数 前向—后向算法 条件随机场的概率计算问题 条件随机场的预测问题 什么是条件随机场 条件随机场的定义 条件随机场总的来说就是只要满足“条件随机场”这个条件&#xff0c;就可以根据定义的模型去求解我们需…

nlp基础—9.条件随机场模型(CRF算法)

文章目录 引言一、概率无向图模型1. 概率无向图模型的定义2. 概率无向图模型的因子分解 二、条件随机场的定义与形式1. 条件随机场的定义2. 条件随机场的参数化形式3. 条件随机场的简化形式4.条件随机场的矩阵形式 三、条件随机场的三个基本问题1.概率计算问题2. 学习问题3. 预…

条件随机场模型

条件随机场模型&#xff08;Conditional Random Fields, CRF&#xff09; 条件随机场是给定一组输入随机变量条件下&#xff0c;另一组输出随机变量的条件概率分布模型&#xff0c;其特点是假设输出随机变量构成马尔可夫随机场。线性链条件随机场&#xff0c;是输入序列对输出…

CRF 条件随机场

目录 1. 基本概念 1.1 各种随机场 1.2 CRF模型的训练原理 1.3 条件随机场的参数化形式 1.4条件随机场对应的简化概率表达 2. 例子 定义CRF中的特征函数 从特征函数到概率 CRF与逻辑回归的比较 CRF与HMM的比较 HMM和CRF区别 3. Tensorflow实现 tf.contrib.c…

NLP之条件随机场

条件随机场&#xff08;conditional random fields, CRFs&#xff09;由J. Lafferty等人&#xff08;2001&#xff09;提出&#xff0c;近几年来在自然语言处理和图像处理等领域中得到了广泛的应用。 CRF是用来标注和划分序列结构数据的概率化结构模型。言下之意&#xff0c;就…