当前位置: 首页 > 编程笔记 >

TypeScript 用作参数

阎晋
2023-03-14
本文向大家介绍TypeScript 用作参数,包括了TypeScript 用作参数的使用技巧和注意事项,需要的朋友参考一下

示例

假设我们想接收一个函数作为参数,我们可以这样做:

function foo(otherFunc: Function): void {
    ...
}

如果要接收构造函数作为参数:

function foo(constructorFunc: { new() }) {
    new constructorFunc();
}

function foo(constructorWithParamsFunc: { new(num: number) }) {
    new constructorWithParamsFunc(1);
}

为了使阅读更容易,我们可以定义一个描述构造函数的接口:

interface IConstructor {
    new();
}

function foo(contructorFunc: IConstructor) { 
    new constructorFunc();
}

或带有参数:

interface INumberConstructor {
    new(num: number);
}

function foo(contructorFunc: INumberConstructor) {
    new contructorFunc(1);
}

即使使用泛型:

interface ITConstructor<T, U> {
    new(item: T): U;
}

function foo<T, U>(contructorFunc: ITConstructor<T, U>, item: T): U {
    return new contructorFunc(item);
}

如果我们想接收一个简单的函数而不是一个构造函数,则几乎是相同的:

function foo(func: { (): void }) {
    func();
}

function foo(constructorWithParamsFunc: { (num: number): void }) {
    new constructorWithParamsFunc(1);
}

为了使阅读更容易,我们可以定义一个描述函数的接口

interface IFunction {
    (): void;
}

function foo(func: IFunction ) { 
    func();
}

或带有参数:

interface INumberFunction {
    (num: number): string;
}

function foo(func: INumberFunction ) {
    func(1);
}

即使使用泛型:

interface ITFunc<T, U> {
    (item: T): U;
}

function foo<T, U>(contructorFunc: ITFunc<T, U>, item: T): U {
    return func(item);
}
           

 类似资料:
  • 本文向大家介绍TypeScript 类型参数作为约束,包括了TypeScript 类型参数作为约束的使用技巧和注意事项,需要的朋友参考一下 示例 使用TypeScript 1.8,类型参数约束可以从同一类型参数列表中引用类型参数。以前这是一个错误。            

  • 为什么打字稿ES6没有检测到对象不是函数? 基于此函数,您会假设这将失败: 因为没有sortQuery对象,而是回调函数。这并没有给我任何类型的错误,这意味着typescript允许回调作为对象类型。 如何确保这会导致错误?

  • vue3+typescript,ref<number>作为参数传入函数时,实时响应失效,直接作为number类型传入 如果改为reactive的话,因为这样是对象,不对进行深拷贝,地址不变,但是要改很多代码,有没有类似于C++的参数的引用操作

  • 在TypeScript中,我定义了一个,然后我想让一个函数接受一个参数,该参数的值是枚举的值之一。但是,TypeScript似乎不对值进行任何验证,并允许枚举之外的值。有办法做到这一点吗? 如果我使用而不是,我可以得到与我所要得到的类似的东西,但是我失去了enum的一些功能。

  • 我在TypeScript中使用命名参数时遇到问题。我知道它不支持我在TypeScript中使用它的方式。 但是我该怎么做呢? 打字稿: JavaScript: 我在看(这没有成功): 有没有办法在JavaScript中的函数调用中提供命名参数? 如何将可选的命名参数添加到 TypeScript 函数参数? 我可以在 TypeScript 中做什么,以便在 JavaScript 中使用命名参数? 我