13af6ab5fSopenharmony_ci# Interface can not extend interfaces with the same method 23af6ab5fSopenharmony_ci 33af6ab5fSopenharmony_ciRule ``arkts-no-extend-same-prop`` 43af6ab5fSopenharmony_ci 53af6ab5fSopenharmony_ci**Severity: error** 63af6ab5fSopenharmony_ci 73af6ab5fSopenharmony_ciIn TypeScript, an interface that extends two other interfaces with the same method 83af6ab5fSopenharmony_cimust declare that method with a combined result type. It is not allowed in 93af6ab5fSopenharmony_ciArkTS because ArkTS does not allow an interface to contain two methods with 103af6ab5fSopenharmony_cisignatures that are not distinguishable, e.g., two methods that have the same 113af6ab5fSopenharmony_ciparameter lists but different return types. 123af6ab5fSopenharmony_ci 133af6ab5fSopenharmony_ci 143af6ab5fSopenharmony_ci## TypeScript 153af6ab5fSopenharmony_ci 163af6ab5fSopenharmony_ci 173af6ab5fSopenharmony_ci``` 183af6ab5fSopenharmony_ci 193af6ab5fSopenharmony_ci interface Mover { 203af6ab5fSopenharmony_ci getStatus(): { speed: number } 213af6ab5fSopenharmony_ci } 223af6ab5fSopenharmony_ci interface Shaker { 233af6ab5fSopenharmony_ci getStatus(): { frequency: number } 243af6ab5fSopenharmony_ci } 253af6ab5fSopenharmony_ci 263af6ab5fSopenharmony_ci interface MoverShaker extends Mover, Shaker { 273af6ab5fSopenharmony_ci getStatus(): { 283af6ab5fSopenharmony_ci speed: number 293af6ab5fSopenharmony_ci frequency: number 303af6ab5fSopenharmony_ci } 313af6ab5fSopenharmony_ci } 323af6ab5fSopenharmony_ci 333af6ab5fSopenharmony_ci class C implements MoverShaker { 343af6ab5fSopenharmony_ci private speed: number = 0 353af6ab5fSopenharmony_ci private frequency: number = 0 363af6ab5fSopenharmony_ci 373af6ab5fSopenharmony_ci getStatus() { 383af6ab5fSopenharmony_ci return { speed: this.speed, frequency: this.frequency } 393af6ab5fSopenharmony_ci } 403af6ab5fSopenharmony_ci } 413af6ab5fSopenharmony_ci 423af6ab5fSopenharmony_ci``` 433af6ab5fSopenharmony_ci 443af6ab5fSopenharmony_ci## ArkTS 453af6ab5fSopenharmony_ci 463af6ab5fSopenharmony_ci 473af6ab5fSopenharmony_ci``` 483af6ab5fSopenharmony_ci 493af6ab5fSopenharmony_ci class MoveStatus { 503af6ab5fSopenharmony_ci public speed : number 513af6ab5fSopenharmony_ci constructor() { 523af6ab5fSopenharmony_ci this.speed = 0 533af6ab5fSopenharmony_ci } 543af6ab5fSopenharmony_ci } 553af6ab5fSopenharmony_ci interface Mover { 563af6ab5fSopenharmony_ci getMoveStatus(): MoveStatus 573af6ab5fSopenharmony_ci } 583af6ab5fSopenharmony_ci 593af6ab5fSopenharmony_ci class ShakeStatus { 603af6ab5fSopenharmony_ci public frequency : number 613af6ab5fSopenharmony_ci constructor() { 623af6ab5fSopenharmony_ci this.frequency = 0 633af6ab5fSopenharmony_ci } 643af6ab5fSopenharmony_ci } 653af6ab5fSopenharmony_ci interface Shaker { 663af6ab5fSopenharmony_ci getShakeStatus(): ShakeStatus 673af6ab5fSopenharmony_ci } 683af6ab5fSopenharmony_ci 693af6ab5fSopenharmony_ci class MoveAndShakeStatus { 703af6ab5fSopenharmony_ci public speed : number 713af6ab5fSopenharmony_ci public frequency : number 723af6ab5fSopenharmony_ci constructor() { 733af6ab5fSopenharmony_ci this.speed = 0 743af6ab5fSopenharmony_ci this.frequency = 0 753af6ab5fSopenharmony_ci } 763af6ab5fSopenharmony_ci } 773af6ab5fSopenharmony_ci 783af6ab5fSopenharmony_ci class C implements Mover, Shaker { 793af6ab5fSopenharmony_ci private move_status : MoveStatus 803af6ab5fSopenharmony_ci private shake_status : ShakeStatus 813af6ab5fSopenharmony_ci 823af6ab5fSopenharmony_ci constructor() { 833af6ab5fSopenharmony_ci this.move_status = new MoveStatus() 843af6ab5fSopenharmony_ci this.shake_status = new ShakeStatus() 853af6ab5fSopenharmony_ci } 863af6ab5fSopenharmony_ci 873af6ab5fSopenharmony_ci public getMoveStatus() : MoveStatus { 883af6ab5fSopenharmony_ci return this.move_status 893af6ab5fSopenharmony_ci } 903af6ab5fSopenharmony_ci 913af6ab5fSopenharmony_ci public getShakeStatus() : ShakeStatus { 923af6ab5fSopenharmony_ci return this.shake_status 933af6ab5fSopenharmony_ci } 943af6ab5fSopenharmony_ci 953af6ab5fSopenharmony_ci public getStatus(): MoveAndShakeStatus { 963af6ab5fSopenharmony_ci return { 973af6ab5fSopenharmony_ci speed: this.move_status.speed, 983af6ab5fSopenharmony_ci frequency: this.shake_status.frequency 993af6ab5fSopenharmony_ci } 1003af6ab5fSopenharmony_ci } 1013af6ab5fSopenharmony_ci } 1023af6ab5fSopenharmony_ci 1033af6ab5fSopenharmony_ci``` 1043af6ab5fSopenharmony_ci 1053af6ab5fSopenharmony_ci 106