ライブラリが定義している型InternalTypeがあり、これが関数の返り値になっているのは常に誤りなので事前に検知したいと考えています。
詳しく書くと、本来はInternalTypeオブジェクトのidを返さなければいけないところで、
InternalTypeオブジェクト自体を返してしまうというミスが多発しているため、
どの関数においても、InternalTypeが返り値になっていないことを確認したいといった感じです。
返り値の型を明示すればそのようなミスはなくなりそうですが、全ての関数に型注釈を書くより良い解決法がないかと探している状況です。
tsconfig や eslintrc をカスタマイズすることで、InternalTypeを返す関数に赤線を引いたり、TSのコンパイルが通らないようにするようなことは不可能でしょうか?
文章を推敲しました。
具体例を書いた方が分かりやすいかと。
// sample.ts
type InternalType = { internal: boolean };
export const foo = (): InternalType => {
return { internal: true };
}
// index.ts
import { foo } from './sample';
var x = foo();
console.log(x.internal); // true
って感じで、InternalType を export してなくても、それを返す関数 foo は export できてしまうのが問題ってことですよね。
で、軽く調べた限りでは無理そうですね。というか、foo の戻り値の型を書かなくても foo の戻り値は InternalType に適合すると型推論されるわけですが、これを禁止するのはどう考えても不可能でしょう…。
ありがとうございます。
カスタムルールか何かで特定の型を排除するのはは無理そうなのですね。