当前位置: 首页 > wzjs >正文

专业网站建设空间asp网站后台下载

专业网站建设空间,asp网站后台下载,大连网站开发选领超科技,找简历的网站在 TypeScript 中,​​字面量类型(Literal Types)​​ 是一种将​​具体的值作为类型​​的机制,用于限制变量或参数只能接受特定的字面量值。它通过精确约束取值范围,增强代码的类型安全性 基础定义与类型​​ 字面量…

在 TypeScript 中,​​字面量类型(Literal Types)​​ 是一种将​​具体的值作为类型​​的机制,用于限制变量或参数只能接受特定的字面量值。它通过精确约束取值范围,增强代码的类型安全性

  • 基础定义与类型​​
    字面量类型分为三种:
  • 字符串字面量类型​​:如 “success”、“error”
  • ​数字字面量类型​​:如 0、1、42
  • ​布尔字面量类型​​:true 或 false(实际使用较少)
// 字符串字面量类型
type Status = "success" | "error";
let status: Status = "success"; // 只能赋值 "success" 或 "error"// 数字字面量类型
type DiceRoll = 1 | 2 | 3 | 4 | 5 | 6;
const roll: DiceRoll = 3; // 只能赋值 1-6// 布尔字面量类型(通常直接使用 boolean)
type IsReady = true;
let ready: IsReady = true; // 只能为 true
  • 字面量类型的联合类型
    字面量类型可以与其他字面量类型或原始类型联合使用,形成更灵活的类型定义。
type Color = 'red' | 'green' | 'blue';
type Size = 'small' | 'medium' | 'large';type ProductFilter = Color | Size;function applyFilter(filter: ProductFilter) {console.log(`Applying filter: ${filter}`);
}applyFilter('red'); // 正确
applyFilter('small'); // 正确
applyFilter('extra-large'); // 错误:Argument of type '"extra-large"' is not assignable to parameter of type 'ProductFilter'.
  • 字面量类型与对象字面量
    在对象字面量中使用字面量类型,可以确保对象的属性只能是特定的值。
type Role = 'admin' | 'user' | 'guest';interface User {name: string;role: Role;
}const user: User = {name: 'John Doe',role: 'admin' // 正确
};const user2: User = {name: 'Jane Doe',role: 'moderator' // 错误:Type '"moderator"' is not assignable to type 'Role'.
};
  • 字面量类型与函数参数
    在函数参数中使用字面量类型,可以限制函数调用时传入的参数值。
type LogLevel = 'info' | 'warning' | 'error';function log(message: string, level: LogLevel = 'info') {console.log(`[${level.toUpperCase()}] ${message}`);
}log('Application started'); // [INFO] Application started
log('File not found', 'warning'); // [WARNING] File not found
log('Critical error', 'critical'); // 错误:Argument of type '"critical"' is not assignable to parameter of type 'LogLevel'.
  • 字面量类型与类型守卫
    字面量类型可以与类型守卫结合使用,以便在函数内部进行更精确的类型检查。

type FileType = 'image' | 'video' | 'audio';function processFile(file: { type: FileType; data: any }) {if (file.type === 'image') {console.log('Processing image:', file.data);} else if (file.type === 'video') {console.log('Processing video:', file.data);} else if (file.type === 'audio') {console.log('Processing audio:', file.data);}
}processFile({ type: 'image', data: 'image.jpg' }); // 正确
processFile({ type: 'document', data: 'document.pdf' }); // 错误:Argument of type '"document"' is not assignable to parameter of type 'FileType'.
  • 字面量类型与映射类型
    字面量类型可以用于映射类型中,以创建灵活的类型转换。

type Key = 'name' | 'age' | 'email';type PartialUser<T> = {[K in Key]?: T;
};const user: PartialUser<string> = {name: 'John Doe',age: '30', // 错误:Type 'string' is not assignable to type 'number'.email: 'john@example.com'
};
  • 字面量类型与模板字面量类型
    字面量类型可以和其他字符串结合,形成模板字面量类型,用于生成新的类型。
type EventNames = 'click' | 'hover' | 'submit';
type EventCallback = (event: Event) => void;type EventListenerMap = {[K in EventNames]: EventCallback;
};const listeners: EventListenerMap = {click: (event) => console.log('Click event', event),hover: (event) => console.log('Hover event', event),submit: (event) => console.log('Submit event', event)
};
  • 字面量类型与 as const 断言
    as const 断言可以与字面量类型结合使用,确保变量的值不会被修改,并且类型被精确推断。
const directions = ['North', 'South', 'East', 'West'] as const;
type Direction = typeof directions[number]; // "North" | "South" | "East" | "West"function move(direction: Direction) {console.log(`Moving ${direction}`);
}move('North'); // 正确
move('Northeast'); // 错误:Argument of type '"Northeast"' is not assignable to parameter of type 'Direction'.
http://www.dtcms.com/wzjs/585692.html

相关文章:

  • 网站内容排版设计开源的wordpress
  • 网站上线前的准备国外扁平化网站设计欣赏
  • 做英文网站赚钱西安网站建设熊掌号
  • 做搜狗网站优化排名乐清市网站建设哪家性价比高
  • 中学网站模板网站维护简单吗
  • 青龙建站教程单位网站建设ppt
  • 人人做免费网站做包装一般看什么网站
  • 如何防止网站被盗运城公司网站建设
  • 成都营销型网站建设公司中国执行信息公开网官网
  • seo优化网站的手段企?I网站建站 ?V州 ??l
  • 网站 永久关停 请示企业介绍微网站怎么做
  • 做宠物网站专业seo公司
  • 唐山网站建设怎么样南阳卧龙区网站建设哪家好
  • 试玩网站怎么做谷歌seo新手快速入门
  • 福州网站建设加推广广告设计毕业设计
  • asp网站如何运行北京seo站内优化
  • 如何提高网站关键词的排名网站建设维护协议
  • php 个人网站 源码关键词优化排名的步骤
  • 网站建设怎么申请域名江西高端网站定制
  • 大流量网站 文章点击百度指数网站
  • 怎样通过阿里云建设网站园区网络规划与设计
  • 泗门网站建设wordpress手机模板怎么用
  • 网上商城包括什么类型东莞网络排名优化
  • 海宁市建设局官方网站6wordpress的模板怎么用
  • 网站开发的发展趋势图库下载网站源码
  • 网站服务建设网站挑错
  • 兖州网站开发中小企业微网站建设
  • 可以做我女朋友吗网站怎样建一个好的网站
  • 记事本做网站报告什么叫网络营销目标市场
  • 深圳网站 制作信科便宜应用软件开发包括什么