相关疑难解决方法(0)

映射类型:删除可选修饰符

鉴于此代码:

interface Foo{
  one?: string;
  two?: string;
}

type Foo2 = {
  [P in keyof Foo]: number;
}
Run Code Online (Sandbox Code Playgroud)

我希望类型Foo2{ one: number; two: number; } 但是,它似乎保持可选修饰符{ one?: number; two?: number; }

使用映射类型时是否可以删除可选修饰符?

typescript mapped-types

9
推荐指数
2
解决办法
1671
查看次数

如何删除 TS2722:无法调用可能“未定义”的对象。错误?

我有一个看起来像这样的功能

let bcInst;
if(props.onBoundsChanged){
    bcInst = kakao.maps.event.addListener(map, 'bounds_changed',()=>{
        props.onBoundsChanged(map); //I get error here
    })
}
Run Code Online (Sandbox Code Playgroud)

道具界面如下图

interface IMapProps{
    mapId?: string;
    longitude: number;
    latitude: number;
    level:number;
    onBoundsChanged?:{
        (map:any) : void
    }
}
Run Code Online (Sandbox Code Playgroud)

即使我在 if 语句中检查 props.onBoundsChanged,我也会收到 TS2722:无法调用可能是“未定义”的对象。在我使用 props.onBoundsChanged 的​​位置出错。我该如何解决这个问题?

typescript reactjs

2
推荐指数
1
解决办法
5366
查看次数

标签 统计

typescript ×2

mapped-types ×1

reactjs ×1