Inheritance only works downwards.
If you want to access the properties of a child class (WeaponScriptable) from a reference to a base class (ItemScriptable), you will need to explicitly tell your code, that you expect your base class to be an instance of the child class.
The easiest way to do this, would be to use the as keyword: cs StartCoroutine(StartAttackCooldown((ItemData as WeaponScriptable).weaponSpeed));However, this may become an issue, if ItemData is not an instance of WeaponScriptable but of some other item type. Then you'll get a NullReferenceException as the cast returns null.
A way around this, would be the is keyword: cs if (ItemData is WeaponScriptable weapon) { StartCoroutine(StartAttackCooldown(weapon.weaponSpeed)); }This would only try to access weaponSpeed, if the value of ItemData actually is a WeaponScriptable.