TypeScript在线运行

版本:

所属目录
点击了解高性能代码运行API
运行结果
教程手册
代码仓库
极速运行
终端运行
图形+终端

                        
以下是用户最新保存的代码
自定义 new 发布于:2024-01-12 18:02 ts 测试代码 发布于:2024-01-12 17:56 基数排序(TypeScript) 发布于:2023-12-06 21:16 计数排序(TypeScript) 发布于:2023-11-29 20:10 TypeScript 学习 发布于:2023-11-27 19:13 堆排序(TypeScript) 发布于:2023-11-22 21:11 测试测试测试测试测试测试 发布于:2023-11-23 20:58 堆(TypeScript) 发布于:2023-11-22 21:11 数组第k大的值(TypeScript) 发布于:2023-11-14 20:50 快速排序(TypeScript) 发布于:2023-11-14 20:28 实现数组元素的和 发布于:2023-11-09 21:40 实现日期的转换 发布于:2023-11-09 21:33 heap求第k大的值 发布于:2023-11-08 21:09 TS快速排序 发布于:2023-11-08 20:51 快速排序(TypeScript) 发布于:2023-11-08 21:08 ## ts合并对象 1. 扩展运算符合并 2. Object.assign( ) 3. 合并三个对象 发布于:2023-11-08 14:35 求逆序对个数(TypeScript) 发布于:2023-11-06 19:12 归并排序(TypeScript) 发布于:2023-11-06 18:57 数组累加求和(TypeScript) 发布于:2023-10-29 16:19 农民分土地(TypeScript) 发布于:2023-10-29 16:18 农民分土地 发布于:2023-10-25 20:17 判断字符串是否为回文串(TypeScript) 发布于:2023-10-24 15:35 求解斐波那契数列(TypeScript) 发布于:2023-10-24 15:35 求解阶乘(TypeScript) 发布于:2023-10-24 15:35 折半查找算法 发布于:2023-10-15 22:39 插入排序算法 发布于:2023-10-15 22:37 背包问题代码 发布于:2023-09-27 21:03 字符串匹配 发布于:2023-09-27 20:25 选择排序(TypeScript) 发布于:2023-09-20 21:16 学习ts编程代码 发布于:2023-09-16 12:10 阮一峰TS教学 发布于:2023-09-09 11:07 实现 PromiseAll 方法 发布于:2023-08-24 19:20 sleep 返回一个 Promise,并在 ms 毫秒后 Promise 变为完成状态 发布于:2023-08-24 19:14 product 计算数组笛卡尔积 发布于:2023-08-24 19:13 二叉树所有路径 发布于:2023-08-24 19:01 20 到 30之间的数相加 发布于:2023-08-05 09:34 洗牌算法测试 发布于:2023-07-05 15:41 class A{ FirstName:string LastName:string constructor( FirstName:string, LastName:string){ this.FirstName = FirstName this.LastName = LastName } get AllName(){ return this.FirstName+"---"+this.LastName } } const B = new A('张','三') console.log(B); 发布于:2023-07-04 18:40 let int:bigint = Bigint(100) 发布于:2023-07-02 18:19 最新保存数据 发布于:2023-06-28 15:01 orderTime处理逻辑 发布于:2023-06-27 20:42 for (let k = 0; k < arr.length; k++) { if (arr[k].days === orderData[i].dates.split(' ')[0]) { arr[k].services.push(JSON.stringify({ serviceName: orderData[i].serviceName })) 发布于:2023-06-27 10:16 TypeScript实现建造者模式 发布于:2023-06-14 09:26 # **ts 类型注解** 发布于:2023-05-15 13:43 测试ts相关 发布于:2023-05-11 18:07 TypeScript泛型编程-泛型约束 发布于:2023-04-27 16:18 TypeScript泛型编程-传入多个泛型 发布于:2023-04-27 15:47 TypeScript泛型编程-泛型实现类型参数化 发布于:2023-04-27 15:44 # 翻译字符串 华为一面没写出来的算法题,后来思考了一下应该还是可以写出来。 主要的盲点就是在寻找边界最好设立一个层级的概念 发布于:2023-04-04 10:59 泛型的使用 发布于:2023-03-21 16:23 [更多]
显示目录

模板



TypeScript 声明文件模板


  • global-modifying-module.d.ts
  • global-plugin.d.ts
  • global.d.ts
  • module-class.d.ts
  • module-function.d.ts
  • module-plugin.d.ts
  • module.d.ts

global-modifying-module.d.ts

//[~库名称~][~可选版本号~]的类型定义
//项目:[~项目名称~]
//定义依据:[~您的姓名~]<[~A URL FOR YOU~]>
/*~这是全局修改模块模板文件。您应该将其重命名为index.d.ts
*~并将其放入与模块同名的文件夹中。
*~例如,如果你在为“super-greeter”写一个文件
*~文件应该是'super greeter/index.d.ts'
*/
/*~注意:如果全局修改模块是可调用或可构造的,则
*~需要将这里的模式与模块类或模块函数中的模式结合起来
*~模板文件
*/

声明全局{
/*~在这里,声明全局命名空间中的内容,或扩展
*~全局命名空间中的现有声明
*/

接口字符串{
fancyFormat(opts:StringFormatOptions):字符串;
}
}
/*~如果您的模块导出类型或值,请照常编写它们*/
导出接口StringFormatOptions{
fancinessLevel:数字;
}
/*~例如,在模块上声明一个方法(除了它的全局副作用外)*/
导出函数doSomething():void;
/*~如果你的模块什么也不导出,你就需要这条线。否则,删除它*/
导出{};

global-plugin.d.ts

//[~库名称~][~可选版本号~]的类型定义
//项目:[~项目名称~]
//定义依据:[~您的姓名~]<[~A URL FOR YOU~]>
/*~此模板显示如何编写全局插件。*/
/*~为原始类型编写声明并添加新成员。
*~例如,这将添加一个带有to重载的“toBinaryString”方法
*~内置数字类型。

interface Number {
    toBinaryString(opts?: MyLibrary.BinaryFormatOptions): string;
    toBinaryString(callback: MyLibrary.BinaryFormatCallback, opts?: MyLibrary.BinaryFormatOptions): string;
}

*~如果需要声明多个类型,请将它们放在命名空间中
*~以避免在全局命名空间中添加太多内容。

declare namespace MyLibrary {
    type BinaryFormatCallback = (n: number) => string;
    interface BinaryFormatOptions {
        prefix?: string;
        padding: number;
    }
}

global.d.ts

//[~库名称~][~可选版本号~]的类型定义
//项目:[~项目名称~]
//定义依据:[~您的姓名~]<[~A URL FOR YOU~]>
/*~如果这个库是可调用的(例如,可以作为myLib(3)调用),
*~把电话签名都写在这里。
*~否则,删除此部分。
 */
declare  function  myLib(a: string): string;
declare  function  myLib(a: number): number;

/*~如果您希望此库的名称是有效的类型名,
*~你可以在这里做。
*~
*~例如,这允许我们写'var x:myLib';
*~确保这一切都有意义!如果没有,就
*~删除此声明并在下面的命名空间中添加类型。
 */
interface myLib {
    name: string;
    length: number;
    extras?: string[];
}

/*~如果您的库中有对全局变量公开的属性,
*~把它们放在这里。
*~你还应该把类型(接口和类型别名)放在这里。
*/
declare namespace myLib {
    //~ We can write 'myLib.timeout = 50;'
    let timeout: number;

    //~ 我们可以进入 'myLib.version',但不能改变它
    const版本:string;

    //~ 我们可以通过 'let c = new myLib.Cat(42)'
    //~ 或参考,例如 'function f(c: myLib.Cat) { ... }
    class Cat {
        constructor(n: number);

        //~ 我们可以阅读 'c.age' from a 'Cat' instance
        readonly age: number;

        //~ We can invoke 'c.purr()' from a 'Cat' instance
        purr(): void;
    }

    //~ We can declare a variable as
    //~   'var s: myLib.CatSettings = { weight: 5, name: "Maru" };'
    interface CatSettings {
        weight: number;
        name: string;
        tailLength?: number;
    }

    //~ 我们可以写 'const v: myLib.VetID = 42;'
    //~  or 'const v: myLib.VetID = "bob";'
    type VetID = string | number;

    //~ 我们可以调用 'myLib.checkCat(c)' or 'myLib.checkCat(c, v);'
    function checkCat(c: Cat, s?: VetID);
}

module-class.d.ts

//[~库名称~][~可选版本号~]的类型定义
//项目:[~项目名称~]
//定义依据:[~您的姓名~]<[~A URL FOR YOU~]>
/*~这是类模块的模块模板文件。
*~您应该将其重命名为index.d.ts并将其放入与模块同名的文件夹中。
*~例如,如果你在为“super-greeter”写一个文件
*~文件应该是'super greeter/index.d.ts'
*/

/*~请注意,ES6模块不能直接导出类对象。
*~应使用CommonJS样式导入此文件:
*~import x=require('someLibrary');
*~
*~参考文档了解
*~针对ES6模块这一限制的解决方法。
*/

/*~如果此模块是在以下情况下公开全局变量“myClassLib”的UMD模块
*~在模块加载器环境外加载,在此处声明全局。
*~否则,删除此声明。
*/
export as namespace myClassLib;

/*~此声明指定类构造函数函数
*~是从文件导出的对象
*/
export = MyClass;

/*~ 在此类中编写模块的方法和属性 */
declare class MyClass {
    constructor(someParam?: string);

    someProperty: string[];

    myMethod(opts: MyClass.MyClassMethodOptions): number;
}

/*~如果您还想从模块中公开类型,可以
*~把他们放在这个街区。
*/
declare namespace MyClass {
    export interface MyClassMethodOptions {
        width?: number;
        height?: number;
    }
}

module-function.d.ts

//[~库名称~][~可选版本号~]的类型定义
//项目:[~项目名称~]
//定义依据:[~您的姓名~]<[~A URL FOR YOU~]>
/*~这是功能模块的模块模板文件。
*~您应该将其重命名为index.d.ts并将其放入与模块同名的文件夹中。
*~例如,如果你在为“超级迎宾员”写一个文件
*~文件应该是'super greeter/index.d.ts'
*/

/*~请注意,ES6模块不能直接导出可调用函数。
*~应使用CommonJS样式导入此文件:
*~import x=require('someLibrary');
*~
*~参考文档了解
*~针对ES6模块这一限制的解决方法。
*/

/*~如果此模块是在以下情况下公开全局变量“myFuncLib”的UMD模块
*~在模块加载器环境外加载,在此处声明全局。
*~否则,删除此声明。
*/
export as namespace myFuncLib;

/*~此声明指定函数
*~是从文件导出的对象
*/
export = MyFunction;
/*~这个例子展示了如何为你的函数设置多个重载*/
声明函数MyFunction(名称:string):MyFunction.NamedReturnType;
声明函数MyFunction(长度:number):MyFunction.LengthReturnType;

/*~如果您还想从模块中公开类型,可以
*~把他们放在这个街区。通常你会想描述
*~函数返回类型的形状;该类型应该
*~在这里声明,如这个例子所示。
*/
declare namespace MyFunction {
    export interface LengthReturnType {
        width: number;
        height: number;
    }
    export interface NamedReturnType {
        firstName: string;
        lastName: string;
    }

    /*~如果模块也有属性,请在此处声明。例如,
   *~这项声明表明,这项法规是合法的:
     *~   import f = require('myFuncLibrary');
     *~   console.log(f.defaultName);
     */
    export const defaultName: string;
    export let defaultLength: number;
}

module-plugin.d.ts

//[~库名称~][~可选版本号~]的类型定义
//项目:[~项目名称~]
//定义依据:[~您的姓名~]<[~A URL FOR YOU~]>
/*~这是模块插件模板文件。您应该将其重命名为index.d.ts
*~并将其放入与模块同名的文件夹中。
*~例如,如果你在为“super greeter”写一个文件
*~文件应该是'super greeter/index.d.ts'
*/
/*~在此行中,导入此模块添加到的模块*/
import * as m from 'someModule';

/*~ 如果需要,还可以导入其他模块 */
import * as other from 'anotherModule';

/*~ 在这里,声明与上面导入的模块相同的模块 */
declare module 'someModule' {
    /*~ 在内部,添加新的函数、类或变量。你可以用
     *~ unexported types from the original module if needed. */
    export function  theNewMethod(x: m.foo): other.bar; /*~ 您还可以从向现有接口添加新属性
     *~ 原始模块通过编写接口扩充 */  export  interface SomeModuleOptions {
        someModuleSetting?: string;
    }

    /*~ 也可以声明新类型,并将显示为
     *~ are in the original module */
    export interface MyModulePluginOptions {
        size: number;
    }
}

module.d.ts

//[~库名称~][~可选版本号~]的类型定义
//项目:[~项目名称~]
//定义依据:[~您的姓名~]<[~A URL FOR YOU~]>
/*~这是模块模板文件。您应该将其重命名为index.d.ts
*~并将其放入与模块同名的文件夹中。
*~例如,如果你在为“super-greeter”写一个文件
*~文件应该是'super greeter/index.d.ts'
*/

/*~如果此模块是在以下情况下公开全局变量“myLib”的UMD模块
*~在模块加载器环境外加载,在此处声明全局。
*~否则,删除此声明。
*/
export as namespace myLib;

/*~ 如果此模块有方法,请将它们声明为函数,如下所示.
 */
export  function  myMethod(a: string): string;
export  function  myOtherMethod(a: number): number;

/*~ 您可以通过导入模块来声明可用的类型 */
export interface someType {
    name: string;
    length: number;
    extras?: string[];
}

/*~您可以使用const、let或var声明模块的属性*/
导出const myField:number;

/*~如果虚线名称内有类型、属性或方法
*,在“namespace”中声明它们。
*/
export namespace subProp {
    /*~ For example, given this definition, someone could write:
     *~   import { subProp } from 'yourModule';
     *~   subProp.foo();
     *~ or
     *~   import * as yourMod from 'yourModule';
     *~   yourMod.subProp.foo();
     */
    export  function  foo(): void;
}
由JSRUN为你提供的TypeScript在线运行、在线编译工具
        JSRUN提供的TypeScript 在线运行,TypeScript 在线运行工具,基于linux操作系统环境提供线上编译和线上运行,具有运行快速,运行结果与常用开发、生产环境保持一致的特点。
yout