当前位置:网站首页>LayaBox---TypeScript---Example
LayaBox---TypeScript---Example
2022-08-04 21:08:00 【Gragra】
目录
1.介绍
The examples are in order of increasing complexity:
- 全局变量
- 全局函数
- Object with properties
- 函数重载
- Reusable types(接口)
- Reusable types(类型别名)
- 组织类型
- 类
2.例子
2.1 全局变量
全局变量
fooContains the total number of components present.
console.log("Half the number of widgets is " + (foo / 2)); 声明:使用declare var声明变量.
如果变量是只读的,那么可以使用 declare const. 你还可以使用 declare let如果变量拥有块级作用域.
/** 组件总数 */
declare var foo: number;2.2 全局函数
Called with a string argument
greetThe function displays a welcome message to the user.
greet("hello, world");声明: 使用declare function声明函数.
declare function greet(greeting: string): void;2.3 Object with properties
全局变量
myLib包含一个makeGreeting函数, 还有一个属性numberOfGreetingsIndicates the number of welcomes so far.
let result = myLib.makeGreeting("hello, world");
console.log("The computed greeting is:" + result);
let count = myLib.numberOfGreetings; 声明:使用declare namespaceDescribes a type or value accessed in dot notation.
declare namespace myLib {
function makeGreeting(s: string): string;
let numberOfGreetings: number;
}2.4. 函数重载
getWidget函数接收一个数字,返回一个组件,或接收一个字符串并返回一个组件数组.
let x: Widget = getWidget(43);
let arr: Widget[] = getWidget("all of them");声明:
declare function getWidget(n: number): Widget;
declare function getWidget(s: string): Widget[];2.5 Reusable types(接口)
When specifying a greeting,You must pass in one
GreetingSettings对象. This object has the following properties:1- greeting:Required string
2- duration: reliable duration(毫秒表示)
3- color: 可选字符串,比如‘#ff00ff’
greet({
greeting: "hello world",
duration: 4000
});声明: 使用interfaceDefine a type with properties.
interface GreetingSettings {
greeting: string;
duration?: number;
color?: string;
}
declare function greet(setting: GreetingSettings): void;2.6 Reusable types(类型别名)
Anywhere a welcome word is required,你可以提供一个
string,一个返回stringfunction or oneGreeter实例.
function getGreeting() {
return "howdy";
}
class MyGreeter extends Greeter { }
greet("hello");
greet(getGreeting);
greet(new MyGreeter());声明:Type aliases can be used to define short names for types:
type GreetingLike = string | (() => string) | MyGreeter;
declare function greet(g: GreetingLike): void;2.7 组织类型
greeterThe object can log to a file or display a warning. 你可以为.log(...)提供LogOptions和为.alert(...)提供选项.
const g = new Greeter("Hello");
g.log({ verbose: true });
g.alert({ modal: false, title: "Current Greeting" });声明: Use namespaces to organize types.
declare namespace GreetingLib {
interface LogOptions {
verbose?: boolean;
}
interface AlertOptions {
modal: boolean;
title?: string;
color?: string;
}
}You can also create nested namespaces within a declaration:
declare namespace GreetingLib.Options {
// Refer to via GreetingLib.Options.Log
interface Log {
verbose?: boolean;
}
interface Alert {
modal: boolean;
title?: string;
color?: string;
}
}2.8 类
You can do this by instantiating
Greeterobject to create the greeting,或者继承Greeterobject to customize the greeting.
const myGreeter = new Greeter("hello, world");
myGreeter.greeting = "howdy";
myGreeter.showGreeting();
class SpecialGreeter extends Greeter {
constructor() {
super("Very special greetings");
}
}声明: 使用declare class描述一个类或像类一样的对象. 类可以有属性和方法,就和构造函数一样.
declare class Greeter {
constructor(greeting: string);
greeting: string;
showGreeting(): void;
}边栏推荐
- 用 Excel 爬取网络数据的四个小案例
- 【随记】新一天搬砖 --20220727
- Qt Designer生成的图形可以自适应窗口的大小变化
- adb控制常用命令
- MySQL stored procedure introduction, creation, case, delete, view "recommended collection"
- 实战:10 种实现延迟任务的方法,附代码!
- Zero-knowledge proof notes - private transaction, pederson, interval proof, proof of ownership
- 链队
- 88.(cesium之家)cesium聚合图
- About the state transfer problem of SAP e-commerce cloud Spartacus UI SSR
猜你喜欢

数字IC设计中基本运算的粗略的延时估计

【2022杭电多校5 1003 Slipper】多个超级源点+最短路

Oreo域名授权验证系统v1.0.6公益开源版本网站源码

链队

After encountering MapStruct, the conversion between PO, DTO and VO objects is no longer handwritten

mdk5.14 cannot be burned

Oreo domain name authorization verification system v1.0.6 public open source version website source code

QT(41)-多线程-QTThread-同步QSemaphore-互斥QMutex

Zero-knowledge proof - zkSNARK proof system

mdk5.14无法烧录
随机推荐
win10 uwp 使用 WinDbg 调试
动态规划_双数组字符串
括号匹配
推荐系统_刘老师
路由中的meta、params传参的一些问题(可传不可传,为空,搭配,点击传递多次参数报错)
DICOM医学影像协议
该如何训练好深度学习模型?
js的new Function()常用方法
大资本已开始逃离加密领域?
LayaBox---TypeScript---举例
bracket matching
手撕SparkSQL五大JOIN的底层机制
暴雨中的人
win10 uwp 修改图片质量压缩图片
【数据挖掘】搜狐公司数据挖掘工程师笔试题
PowerCLi 批量配置NTP
PCBA方案设计——厨房语音秤芯片方案
Uniapp微信雪糕刺客单页小程序源码
Dotnet using WMI software acquisition system installation
Web3时代的战争