下一张图片的类型定义

时间:2019-06-21 20:27:22

标签: typescript next.js

我使用带有NextJs和next-images的打字稿。 代码是:

import css from "./style.sass";
import img from './logo.svg';
import Link from 'next/link';

export default () => <Link href="/">
        <img src={img} className={css.logo}/>
    </Link>;

如果未输入任何内容,则会显示此错误:

Cannot find module './logo.svg'.ts(2307)

目前,我使用以下类型(typings.ts):

declare module "*.svg" {
    const value: string;
    export default value;
}

declare module "*.png" {
    const value: string;
    export default value;
}

declare module "*.jpg" {
    const value: string;
    export default value;
}

使用这些types.ts文件,该错误应该得到解决,但不是。 使用时有人会有相同的错误吗? 有没有更好的方法来编写Types.ts文件?

2 个答案:

答案 0 :(得分:3)

更新2020:

next-images软件包现在支持TypeScript。

您需要做的就是将定义添加到next-env.d.ts

https://github.com/twopluszero/next-images#typescript

答案 1 :(得分:0)

许多小时后,尝试并出错,我找到了解决方案。 我必须将types.ts移到src /目录,并将其重命名为images.d.ts

此处解释:https://webpack.js.org/guides/typescript/#importing-other-assets

回答一个如何以一种更通用的方式写打字仍然很高兴。