我想编写一个简单的函数,如下所示
const options = {
option1: "option1",
option2: "option2",
option3: "option3",
} as const;
function getOption(str: string) {
if (options[str]) {
/**
* Element implicitly has an 'any' type because expression of type 'string' ca
我有页面,我使用的模型可以有不同的类型(取决于行动和控制器)。我的问题在我想使用partial时启动,它从模型中获取参数,例如:
@Html.Partial("~/Views/Components/SubMenu.cshtml", MyProject.Web.MenuHelper.GetSubMenu(Model.field1))
但是,如果我没有声明类型的模型,我有一个类似于Partial can not use dynamic values的错误。所以我有办法解决这个问题:
@if (Model.GetType() == typeof(ContentPage))
{
假设我有一个Basket界面,跟踪一个人的购物篮中有多少产品,其中产品名称事先是未知的。
interface Basket {
[productName: string]: number;
}
假设这个人可以从他们的购物篮中选择一个产品作为他们的favouriteProduct。如下所示:
interface User {
basket: Basket;
favoriteProduct: string;
}
但我想确保favoriteProduct是Basket中的关键。例如:
// I want this to compile
const user1: User = {
ba
我的目标是创建一个函数,克隆一个数组,并保留类型。使用此代码,type typescript将返回类型声明为any:
export function someFn(inputArray) {
return [...inputArray];
}
// result will have any[] as type
const result = someFn([1, 2, 3]);
我如何告诉类型记录,someFn的返回类型将与输入类型相同(在本例中是一个数字数组)?
解决方案
我知道我可以用一个类型变量来完成这个任务:
export function someFn<T>(inp
我试图在TypeScript中实例化一个泛型类。
在C#,我会这样做的
class MyPacket<T> {...}
var t = typeof(...);
var genericContainer = typeof(MyPacket<>).MakeGenericType(new[]{ t });
var instance = Activator.CreateInstance(genericContainer);
我的用例是,我正在接收来自网络的消息。我还有一个EventEmitter,它期望被调用的类型是正确的。
(msg: Message): void =&g
陷入了一些我无法想象的事情中。
我希望在我的TypeScript包中有一个如下函数:
function example<U>(key: keyof U) {
return function<T extends U[typeof key]>(
value: T,
cb: (obj: unknown /* not sure what this should be typed as */) => void
) {
// ...
}
}
并事先通过未知的联盟进入它:
type Union =
| {
color:
我有一个接受其参数的函数,并返回一个可以使用这些参数的函数。不幸的是,我根本无法让TypeScript对其进行类型检查。下面是我的问题的一个简化示例:
type NoiseMaker<T extends Animal> = (animal: T) => void;
class Dog {
bark() {
console.log('Woof! Woof!');
}
}
class Cat {
meow() {
console.log('Meow')
}
}
type An
下面是一些打字脚本: let markdown = <HTMLTextAreaElement>document.getElementById(id);
let markdownoutput = <HTMLLabelElement>document.getElementById(output); 在上面的代码中,在使用element by id选择某些东西之前,我们声明了元素类型param.(<HTMLTextAreaElement>)它工作得很好。但是我们从中得到的好处是什么呢? 有人能帮我吗? typescript是如何处理这个问题并帮助我们的呢? 提前
我正在尝试编写一个Sub-Pub类,它支持由以下语法表示的事件和子事件: publisher.on("message:general", ... ) // subscribe to all messages
publisher.on("message", ... ) // subscribe to messages in general 为此,我使用TypeScript模板文字。 问题是,虽然它大体上可以工作,但它似乎打破了通用约束。我做错了什么吗? 到目前为止,它看起来是这样的: TS Playground link for convenience inte
我开始学习脚本语言,特别是JavaScript。这很好,当我和Angular2一起学习TypeScript时,我开始感到困惑。
我意识到TypeScript可以定义内置类型,如字符串、数字和对象,而TypeScript将在编译时生成JavaScript。
这里开始了我的困惑,TypeScript是如何在JavaScript上定义泛型类型的,因为JavaScript是基于原型的语言,它不能定义类型。
例如,如何将下列代码编译到JavaScript中。
interface Person {
name : string,
age : number
}
有人能解释一下吗?脚本很有趣,但有时
我有这个typescript代码,使用的泛型过去在typescript 2.3下工作,但现在在typescript 2.4.1的更严格的类型强制下中断。
我写了这个最小的代码片段来演示这个问题:
class A {}
class B extends A {}
function helloA(clazz: typeof A) {}
helloA(B); // fine
class C<T> {
private c: T;
};
class D extends C<string> {}
function helloC(clazz: typeof C) {}
hel