我确信堆栈溢出可能有类似的东西,但我找不到任何东西,并且对于非常简单的东西感到非常沮丧.
我需要使用javascript捕获部分URL(类似于url重写引擎).
网址结构:
http://example.com/constant/CAPTURETHIS
http://example.com/constant/CAPTURETHIS/
http://example.com/constant/CAPTURETHIS#noise
http://example.com/constant/CAPTURETHIS/#noise
Run Code Online (Sandbox Code Playgroud)
我需要返回所有3个senerios的CAPTURETHIS文本
我试图在枚举上使用映射类型:
export enum CurrencyType {
USD = "USD",
AUD = "AUD",
GBP = "GBP",
CAD = "CAD"
}
Run Code Online (Sandbox Code Playgroud)
实现这种类型:
type Rates = {
AUD: number;
CAD: number;
GBP: number;
USD: number;
}
Run Code Online (Sandbox Code Playgroud)
我以为我可以做这样的事情:
type Rates = {
[P in keyof CurrencyType]: number;
};
Run Code Online (Sandbox Code Playgroud)
但是结果是这样的:
type Rates = {
toString: number;
charAt: number;
charCodeAt: number;
concat: number;
indexOf: number;
lastIndexOf: number;
localeCompare: number;
match: number;
replace: number;
//...
}
Run Code Online (Sandbox Code Playgroud)
我尝试使用union literals替代enum,
export type CurrencyType = …Run Code Online (Sandbox Code Playgroud) 查看用户定义片段的vscode 文档,似乎使用正则表达式转换,您可以执行 if/else 条件。
但是,我似乎找不到任何这样的例子,而且我正在努力理解仅基于 BNF 的正确语法。
有人可以解释一下这个语法吗?
例如,
假设我有一个这样的片段:
"body": [
"let color = '${1|white,black|}';",
"let hex = '${???}';"
]
Run Code Online (Sandbox Code Playgroud)
如果color==white,我想要十六进制输出#fff,否则如果黑色#000。
假设我有一个像这样的函数数组:
const foo: Array< () => object > = [
() => ({ one: 'fish' }),
() => ({ two: 'fish' }),
() => ({ red: 'fish' }),
() => ({ blue: 'fish' })
]
Run Code Online (Sandbox Code Playgroud)
是否可以编写一个与所有这些函数的返回类型相交的类型?
{
one: string,
two: string,
red: string,
blue: string,
}
Run Code Online (Sandbox Code Playgroud)
基本上,如果将所有这些函数简化为单个结果,将会产生什么结果的类型。