Rád používám imports/no-relative-parent-imports
eslint pravidlo, aby závislosti mezi různými částmi kódu jasné, a kód snadno testovatelné.
S strojopis, jsem narazil na tento problém: jsem stále potřebují dovážet typy od rodičů dělat dependency injection (pokud jsem dupplicate typy pro každé použití)
Například, pokud jen jsem se překládat kód z právního dokumentaci ke stroji, stane se toto :
// ./add.ts
export default function add (numbers: number[]): number {
return numbers.reduce((sum, n) => sum + n, 0)
}
export type Add = typeof add
// three.ts
import { Add } from '../add' // <--- Relative import still needed to implement
// dependency injection
export default function three(add: Add) : number {
return add([1, 2]);
}
Samozřejmě, že tato úprava nebude projít pravidlo, protože relativní import.
Jediný způsob, jak vidím, by bylo duplikování typu, který bude fungovat, protože strukturální povaha stroji, ale to by bylo náročné na velký projekt.
Je tam pravidlo, že vynucuje závislost injekce, zatímco mě nechá importovat typy deklarované v závislosti ? Protože potřebuju, rozhraní, funkce, parametry, typy, atd...