我在使用typescript的react应用程序中工作。其中一个函数在其中一个变量中接收泛型类型。
如何检查变量的T类型?这个是可能的吗?
MyFunction<T>(newValues: Array<T>) {
if (typeof T === "string") {
// do some stuff
}
}
我有一个接受其参数的函数,并返回一个可以使用这些参数的函数。不幸的是,我根本无法让TypeScript对其进行类型检查。下面是我的问题的一个简化示例:
type NoiseMaker<T extends Animal> = (animal: T) => void;
class Dog {
bark() {
console.log('Woof! Woof!');
}
}
class Cat {
meow() {
console.log('Meow')
}
}
type An
我试图在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
在我的项目中,我使用的是反应式打字本。对于状态管理,我使用的是React redux,对于函数处理,我使用的是redux-saga。为了粘合redux存储和函数,我使用了React的新钩子useSelector和useDispatch。我成功地提取了数据并能够在控制台中显示出来。。基于useSelector文档,我可以在不传递到状态的情况下呈现useSelector。当我映射useSelector的变量时,我得到了TypeScript错误:Object is of type 'unknown'. PS。我也是TypeScript中的新手。
这是我的反应功能组件
import R
我们有一个泛型类型,它成功地从它接收的类型中提取数据属性。它是in the playground,它是这样工作的。 type DataPropertyNames<T> = {
[K in keyof T]: T[K] extends Function ? never : K;
}[keyof T];
type FooBarBaz = {
foo: string;
bar: Function;
baz: number;
};
const f1 = () => {
type DataProps = DataPropertyNames<FooBarB
我开始学习脚本语言,特别是JavaScript。这很好,当我和Angular2一起学习TypeScript时,我开始感到困惑。
我意识到TypeScript可以定义内置类型,如字符串、数字和对象,而TypeScript将在编译时生成JavaScript。
这里开始了我的困惑,TypeScript是如何在JavaScript上定义泛型类型的,因为JavaScript是基于原型的语言,它不能定义类型。
例如,如何将下列代码编译到JavaScript中。
interface Person {
name : string,
age : number
}
有人能解释一下吗?脚本很有趣,但有时
我很确定这是不可能的,但我想我应该再检查一遍。我想我是在尝试模仿typescript的联合类型。 我有一种类型 type StringOrInt =
| String of string
| Int of int 然后是一个函数 let returnSelf (x: StringOrInt) = x 目前,该函数必须调用如下所示 returnSelf (String "hello") 有没有可能做 returnSelf "hello" 并推断它是一个有效的StringOrInt?
我有一些打字代码:
const wrapField = <T extends { value: string }>(fieldValue: string): T => ({
value: fieldValue,
});
Typescript给我一个错误:
'{ value: string; }' is assignable to the constraint of type 'T', but 'T' could be instantiated with a different subtype of constraint
TypeScript 3.0引入了一种名为unknown的新类型,它正是这样做的。就像any一样,任何值都可以分配给unknown;但是,与any不同,您不能使用unknown类型访问值上的任何属性,也不能调用/构造它们。此外,unknown类型的值只能分配给unknown或any。
例如,将上面的示例替换为使用unknown而不是any强制将foo的所有用法转换为一个错误:
let foo: unknown = 10;
// Since `foo` has type `unknown`, TypeScript
// errors on each of these usages.
根据TypeScript (查找字符串文本类型部分),下面的代码应该在TypeScript上工作:
function createElement(tagName: "img"): HTMLImageElement;
function createElement(tagName: "input"): HTMLInputElement;
// ... more overloads ...
function createElement(tagName: string): Element {
// ... code goes here ...
}
当我在或V