用了這麼久的Typescript我都沒有察覺……直到今天引用二維碼組件qrcode.react時報了個元素類型“QrCode”不具有任何構造簽名或調用簽名的錯,原來只是缺少一個ts聲明文件……
本來只是這個小問題,讓我以爲它不能用,又去找了個react-native-qrcode,這個報錯就更是奇怪了,說裏面引用react-native的View無效,我看了下默認的對應文件裏也確實沒有View的輸出……最後折騰了半天還是放棄,用回了qrcode.react,畢竟後來那個最後更新時間是2016年,就怕兼容出問題。
看來,以後得花點時間研究下Typescript了……
聲明文件內容如下:
declare module 'qrcode.react' {
import * as React from 'react';
export interface IProps {
value: string;
size?: number;
bgColor?: string;
fgColor?: string;
level?: "L"|"M"|"Q"|"H";
renderAs?: "svg" | "canvas";
}
export default class QrCode extends React.Component<IProps, any> { }
}