假设我们有这样的代码:
class MyEvent {
timestamp:number;
}
class AEvent extends MyEvent{
x:number;
y:number;
}
class BEvent extends MyEvent{
key:string;
}
var fn:(event:MyEvent)=>void;
function AE(event:AEvent){
let x = event.x; //Ok, but BEvent hasn't 'x' property.
}
fn
我得到了以下错误:
Argument of type 'void' is not assignable to parameter of type 'SetStateAction<never[]>'.
我的相关代码如下所示:
const ViewEvents: React.FC<ViewEventsProps> = ({ navigation }) => {
const flatListRef = useRef(null);
const [limit] = useState(5);
const [page, setPage] = u
谢谢你花时间阅读这篇文章。
我正在尝试学习使用eslint和AirBnB配置一起使用react的类型记录。像映射对象数组和使用每个对象创建自定义函数组件这样简单的事情给了我下一个错误:
Argument of type '(product: ProductType) => JSX.Element' is not assignable to parameter of type '(value: object, index: number, array: object[]) => Element'.
下面是父组件ProductGrid:
const Pr
当我使用对象解构时,为什么我在typescript中出现错误? Javscript运行良好。但是typescript得到了错误。 fn错误: This expression is not callable.
Not all constituents of type '(() => void) | { bar: () => void; }' are callable.
Type '{ bar: () => void; }' has no call signatures. bar错误: Property 'bar' d
我在TypeScript中有一个非异步函数类型,我想要相同的函数类型,但是要异步。
// this is a function type
type MyFunction = (x: number) => void;
// this is an async version of the same function type, created explicitly
type AsyncMyFunction = (x: number) => Promise<void>;
MyFunction可以是任何函数,所以更一般地说它是(...args: any[]) => any
通过阅读和,我了解了TypeScript中的条件类型,我想我在TypeScript中发现了一个长期存在的错误。
例如,这段代码生成类型({ value: string } | { value: number })[],而我期望它生成类型({ value: string | number })[]
// Given an array, make a new array that boxes up string or
// number elements into a new object with a 'value' property
declare function boxup
我对定义一个现有的框架(openlayers.d.ts)很感兴趣,但是不知道如何表达OpenLayers.Layer既是OpenLayers.Layer.Markers的一个类又是一个命名空间这一事实。我相信这使得标记成为层的嵌套类。
用法:
l = new OpenLayers.Layer(...); // this is a base class, never do this
m = new OpenLayers.Layer.Markers(...);
如何在typescript中声明Layer和Markers类?
当将TypeScript转换到JavaScript时,我的理解是TypeScript类型信息丢失了,反射之类的特性只能以非常有限的方式工作。我们在运行时使用JavaScript反射,这是可以理解的,它对TypeScript类型的“知识”有限。
是否有一种在运行时检索TypeScript类型信息的方法?
让我们来看下面的片段,可以在上使用
class Book {
public title: string;
public isbn: string;
}
class Author {
public name: string = '';
public
我想过滤组件的键值。为此,我使用了filter。但是我得到了一个错误:TS2339: Property 'filter' does not exist on type 'string | number | boolean | {} | ReactElement<any> | ReactNodeArray | ReactPortal'. Property 'filter' does not exist on type 'string'.
键值是div的键值。
我尝试将其用作函数或常量,但仍收到相同的错误。
getCo
我需要的非常简单,我只想初始化一个对象,这个对象是我正在初始化的另一个对象的子级。在C#中,它看起来像这样:
var car = new Car {
serialNumber = 25,
engine = new Engine {
horsePower = 500
}
}
在这个示例代码中,我在初始化Car类型时初始化引擎类型。在尝试使用TypeScript执行此操作时,无论我尝试什么操作,我都会遇到语法错误。
下面是我的TypeScript代码:
var car: Car = new Car({
serialNumber: 25,
engine: new Engin
我知道typescript看到了一个跨页,并假设它可以是任意长度的,这就是为什么会抱怨有太多参数(组成函数的参数是1-6)。 在获取未知长度的函数数组时,如何满足编译器的要求? import { compose } from "ramda";
//As long as the compiles is concerned fns might be any length (even more than 6)
const fns = [
n => n * 10,
n => n + 1,
]
const composed = compose(..
我是TypeScript的新手,我将把我的项目更改为TypeScript。但我犯了一些错误。我已经查过那些散布的论点,但我想不出正确的答案。
我已经试过了。
export const fetcher = async (...args) => {
return fetch(...args).then(async (res) => {
let payload;
try {
if (res.status === 204) return null; // 204 does not have body
p
我正在阅读Typescript中的泛型。甚至没有意识到他们就在那里:
var list: number[] = [1, 2, 3];
// Alternatively, using the generic array type
var list: Array<number> = [1, 2, 3];
这让我好奇,如果我说:
var list = [1,2,3]
Typescript会推断出类型,如果是这样,它会推断出什么类型。所以我想知道是否有一种方法可以让Typescript显示变量的类型。
我对Deno中的TypeScript泛型有一个问题。
abstract class Packet {
public abstract read(): Uint8Array;
public abstract write(data: Uint8Array): void;
}
type PacketData = Packet | Uint8Array;
type HookCallbackResult<T extends PacketData> = T | null | undefined;
type HookCallback<T extends PacketDat
在typescript中,我得到了Type 'string[]' is not assignable to type 'never[]'.的错误
我想把'abc‘加到数组中,有什么问题吗?
export default function App() {
const [text, setText] = React.useState("abc");
const [arr, setArr] = React.useState([]);
const xx = () => setArr([...arr, text]);
re