相关疑难解决方法(0)

正确使用const来定义JavaScript中的函数

我感兴趣的是,const在JavaScript中使用特定功能可以设置哪些类型的值有任何限制.这有效吗?虽然它确实有效,但是出于任何原因它被认为是不好的做法?

const doSomething = () => {
   ...
}
Run Code Online (Sandbox Code Playgroud)

是否应该在ES6中以这种方式定义所有功能?如果是这样的话,似乎并没有这样.

谢谢你的评论!

javascript const function ecmascript-6

151
推荐指数
5
解决办法
10万
查看次数

TypeScript:如何编写具有条件返回类型的函数

export type Name = { name: string }
export type Id = { id: number }
export type Value<T> = T extends string ? Name : Id

export function create<T extends string | number>(value: T): Value<T> {
    if (typeof value === "string") return { name: value }

    return { id: value }
}
Run Code Online (Sandbox Code Playgroud)

我正在玩TypeScript中的条件类型.我想用条件返回类型编写一个函数.如果函数传递一个字符串,则返回一个Name,否则返回一个Id.

我的返回语句中出现以下错误:

Type '{ name: T & string; }' is not assignable to type 'Value<T>'.
Run Code Online (Sandbox Code Playgroud)

我错过了什么?日Thnx!

编辑:直接来自Anders Hejlsberg谈话的例子来自Build 2018:https://youtu.be/hDACN-BGvI8?t = 224l

他甚至声称"我们不再需要编写函数重载......"

如果我将代码更改为声明,编译错误就会消失:

export type …
Run Code Online (Sandbox Code Playgroud)

typescript

12
推荐指数
2
解决办法
1044
查看次数

Typescript返回类型取决于参数

我正在尝试编写一个函数,该函数接受boolean类型的参数并根据输入的值返回两种类型之一。我发现了两种方法:

function dependsOnParameter<B extends boolean>(x: B): B extends true ? number : string {
    if (x) {
        return 3;
    } else {
        return "string";
    }
}
Run Code Online (Sandbox Code Playgroud)

在这里,TypeScript说 Type '3'/'"string"' is not assignable to type 'B extends true ? number : string'.

我的其他方法如下所示:

function dependsOnParameter(x: true): number;
function dependsOnParameter(x: false): string;
function dependsOnParameter(x: boolean): number | string {
    if (x) {
        return 3;
    } else {
        return "string";
    }
}
Run Code Online (Sandbox Code Playgroud)

这样编译;但是,如果我尝试使用我的函数:

function calling(x: boolean) {
    dependsOnParameter(x);
}
Run Code Online (Sandbox Code Playgroud)

我懂了Argument of type …

typing typescript

4
推荐指数
2
解决办法
1918
查看次数

标签 统计

typescript ×2

const ×1

ecmascript-6 ×1

function ×1

javascript ×1

typing ×1