value = Object.assign(new Model(), value)
dengan prefer-object-spread
diaktifkan
kegagalan serat, perbaikan otomatis untuk menggunakan penyebaran objek
Tidak ada apa-apa. aturan ini harus mengabaikan kasus di mana argumen pertama ke Object.assign
adalah instance kelas.
--project
diberikan, kita dapat memeriksa apakah tipe argumen pertama adalah seperti kelasnew ...
dan mengabaikan ekspresiseperti yang dilaporkan di https://github.com/palantir/tslint/issues/2618#issuecomment -303879255
Object.assign
memiliki efek samping pada argumen pertamanya. (Itulah sebabnya TypeScript mentranspilasikan { ...x, ...y }
menjadi Object.assign({}, x, y)
.) Aturan hanya boleh diaktifkan jika argumen pertama adalah literal objek baru.
Aturan hanya boleh aktif jika argumen pertama adalah literal objek baru.
Nah, secara teknis, Anda benar. Tetapi saya sering melihat kesalahan di mana programmer tidak berhati-hati tentang efek samping pada argumen pertama dan mereka tetap memberikan nilai non-literal ketika mereka _sebenarnya_ bermaksud melakukan hal yang sama dengan penyebaran objek. Jadi saya masih ingin aturan ini menangkap itu. Mungkin bisa jadi pilihan...
Jika argumen pertama bukan literal objek, aturan hanya menghasilkan kesalahan jika hasilnya ditetapkan ke sesuatu.
Menetapkan nilai kembalian Object.assign hanya masuk akal jika argumen pertama adalah CallExpression, NewExpression atau serupa. Segala sesuatu yang lain, misalnya Identifier atau PropertyAccessExpression masih harus error.
Dan itu tidak memerlukan pemeriksa tipe.
Komentar yang paling membantu
Jika argumen pertama bukan literal objek, aturan hanya menghasilkan kesalahan jika hasilnya ditetapkan ke sesuatu.
Menetapkan nilai kembalian Object.assign hanya masuk akal jika argumen pertama adalah CallExpression, NewExpression atau serupa. Segala sesuatu yang lain, misalnya Identifier atau PropertyAccessExpression masih harus error.
Dan itu tidak memerlukan pemeriksa tipe.